
// MIT License
// 
// Copyright (c) 2009-2017 Luca Piccioni
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// 
// This file is automatically generated

#pragma warning disable 649, 1572, 1573

// ReSharper disable RedundantUsingDirective
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;

using Khronos;

// ReSharper disable CheckNamespace
// ReSharper disable InconsistentNaming
// ReSharper disable JoinDeclarationAndInitializer

namespace OpenGL
{
	public partial class Gl
	{
		/// <summary>
		/// [GL] Value of GL_PROGRAM_MATRIX_EXT symbol.
		/// </summary>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public const int PROGRAM_MATRIX_EXT = 0x8E2D;

		/// <summary>
		/// [GL] Value of GL_TRANSPOSE_PROGRAM_MATRIX_EXT symbol.
		/// </summary>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public const int TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E;

		/// <summary>
		/// [GL] Value of GL_PROGRAM_MATRIX_STACK_DEPTH_EXT symbol.
		/// </summary>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public const int PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F;

		/// <summary>
		/// [GL] glMatrixLoadfEXT: Binding for glMatrixLoadfEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoadEXT(MatrixMode mode, float[] m)
		{
			Debug.Assert(m.Length >= 16);
			unsafe {
				fixed (float* p_m = m)
				{
					Debug.Assert(Delegates.pglMatrixLoadfEXT != null, "pglMatrixLoadfEXT not implemented");
					Delegates.pglMatrixLoadfEXT((int)mode, p_m);
					LogCommand("glMatrixLoadfEXT", null, mode, m					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixLoadfEXT: Binding for glMatrixLoadfEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoadfEXT<T>(MatrixMode mode, T m) where T : struct
		{
			Debug.Assert(Delegates.pglMatrixLoadfEXT != null, "pglMatrixLoadfEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(m);
			try {
				unsafe {
					Delegates.pglMatrixLoadfEXT((int)mode, (float*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refM = __makeref(m);
				IntPtr refMPtr = *(IntPtr*)(&refM);

				Delegates.pglMatrixLoadfEXT((int)mode, (float*)refMPtr.ToPointer());
			}
			#endif
			LogCommand("glMatrixLoadfEXT", null, mode, m			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixLoaddEXT: Binding for glMatrixLoaddEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoadEXT(MatrixMode mode, double[] m)
		{
			Debug.Assert(m.Length >= 16);
			unsafe {
				fixed (double* p_m = m)
				{
					Debug.Assert(Delegates.pglMatrixLoaddEXT != null, "pglMatrixLoaddEXT not implemented");
					Delegates.pglMatrixLoaddEXT((int)mode, p_m);
					LogCommand("glMatrixLoaddEXT", null, mode, m					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixLoaddEXT: Binding for glMatrixLoaddEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoaddEXT<T>(MatrixMode mode, T m) where T : struct
		{
			Debug.Assert(Delegates.pglMatrixLoaddEXT != null, "pglMatrixLoaddEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(m);
			try {
				unsafe {
					Delegates.pglMatrixLoaddEXT((int)mode, (double*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refM = __makeref(m);
				IntPtr refMPtr = *(IntPtr*)(&refM);

				Delegates.pglMatrixLoaddEXT((int)mode, (double*)refMPtr.ToPointer());
			}
			#endif
			LogCommand("glMatrixLoaddEXT", null, mode, m			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixMultfEXT: Binding for glMatrixMultfEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixMultEXT(MatrixMode mode, float[] m)
		{
			Debug.Assert(m.Length >= 16);
			unsafe {
				fixed (float* p_m = m)
				{
					Debug.Assert(Delegates.pglMatrixMultfEXT != null, "pglMatrixMultfEXT not implemented");
					Delegates.pglMatrixMultfEXT((int)mode, p_m);
					LogCommand("glMatrixMultfEXT", null, mode, m					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixMultfEXT: Binding for glMatrixMultfEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixMultfEXT<T>(MatrixMode mode, T m) where T : struct
		{
			Debug.Assert(Delegates.pglMatrixMultfEXT != null, "pglMatrixMultfEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(m);
			try {
				unsafe {
					Delegates.pglMatrixMultfEXT((int)mode, (float*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refM = __makeref(m);
				IntPtr refMPtr = *(IntPtr*)(&refM);

				Delegates.pglMatrixMultfEXT((int)mode, (float*)refMPtr.ToPointer());
			}
			#endif
			LogCommand("glMatrixMultfEXT", null, mode, m			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixMultdEXT: Binding for glMatrixMultdEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixMultEXT(MatrixMode mode, double[] m)
		{
			Debug.Assert(m.Length >= 16);
			unsafe {
				fixed (double* p_m = m)
				{
					Debug.Assert(Delegates.pglMatrixMultdEXT != null, "pglMatrixMultdEXT not implemented");
					Delegates.pglMatrixMultdEXT((int)mode, p_m);
					LogCommand("glMatrixMultdEXT", null, mode, m					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixMultdEXT: Binding for glMatrixMultdEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixMultdEXT<T>(MatrixMode mode, T m) where T : struct
		{
			Debug.Assert(Delegates.pglMatrixMultdEXT != null, "pglMatrixMultdEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(m);
			try {
				unsafe {
					Delegates.pglMatrixMultdEXT((int)mode, (double*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refM = __makeref(m);
				IntPtr refMPtr = *(IntPtr*)(&refM);

				Delegates.pglMatrixMultdEXT((int)mode, (double*)refMPtr.ToPointer());
			}
			#endif
			LogCommand("glMatrixMultdEXT", null, mode, m			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixLoadIdentityEXT: Binding for glMatrixLoadIdentityEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoadIdentityEXT(MatrixMode mode)
		{
			Debug.Assert(Delegates.pglMatrixLoadIdentityEXT != null, "pglMatrixLoadIdentityEXT not implemented");
			Delegates.pglMatrixLoadIdentityEXT((int)mode);
			LogCommand("glMatrixLoadIdentityEXT", null, mode			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixRotatefEXT: Binding for glMatrixRotatefEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="angle">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixRotateEXT(MatrixMode mode, float angle, float x, float y, float z)
		{
			Debug.Assert(Delegates.pglMatrixRotatefEXT != null, "pglMatrixRotatefEXT not implemented");
			Delegates.pglMatrixRotatefEXT((int)mode, angle, x, y, z);
			LogCommand("glMatrixRotatefEXT", null, mode, angle, x, y, z			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixRotatedEXT: Binding for glMatrixRotatedEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="angle">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixRotateEXT(MatrixMode mode, double angle, double x, double y, double z)
		{
			Debug.Assert(Delegates.pglMatrixRotatedEXT != null, "pglMatrixRotatedEXT not implemented");
			Delegates.pglMatrixRotatedEXT((int)mode, angle, x, y, z);
			LogCommand("glMatrixRotatedEXT", null, mode, angle, x, y, z			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixScalefEXT: Binding for glMatrixScalefEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixScaleEXT(MatrixMode mode, float x, float y, float z)
		{
			Debug.Assert(Delegates.pglMatrixScalefEXT != null, "pglMatrixScalefEXT not implemented");
			Delegates.pglMatrixScalefEXT((int)mode, x, y, z);
			LogCommand("glMatrixScalefEXT", null, mode, x, y, z			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixScaledEXT: Binding for glMatrixScaledEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixScaleEXT(MatrixMode mode, double x, double y, double z)
		{
			Debug.Assert(Delegates.pglMatrixScaledEXT != null, "pglMatrixScaledEXT not implemented");
			Delegates.pglMatrixScaledEXT((int)mode, x, y, z);
			LogCommand("glMatrixScaledEXT", null, mode, x, y, z			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixTranslatefEXT: Binding for glMatrixTranslatefEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixTranslateEXT(MatrixMode mode, float x, float y, float z)
		{
			Debug.Assert(Delegates.pglMatrixTranslatefEXT != null, "pglMatrixTranslatefEXT not implemented");
			Delegates.pglMatrixTranslatefEXT((int)mode, x, y, z);
			LogCommand("glMatrixTranslatefEXT", null, mode, x, y, z			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixTranslatedEXT: Binding for glMatrixTranslatedEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixTranslateEXT(MatrixMode mode, double x, double y, double z)
		{
			Debug.Assert(Delegates.pglMatrixTranslatedEXT != null, "pglMatrixTranslatedEXT not implemented");
			Delegates.pglMatrixTranslatedEXT((int)mode, x, y, z);
			LogCommand("glMatrixTranslatedEXT", null, mode, x, y, z			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixFrustumEXT: Binding for glMatrixFrustumEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="left">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="right">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="bottom">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="top">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="zNear">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="zFar">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixFrustumEXT(MatrixMode mode, double left, double right, double bottom, double top, double zNear, double zFar)
		{
			Debug.Assert(Delegates.pglMatrixFrustumEXT != null, "pglMatrixFrustumEXT not implemented");
			Delegates.pglMatrixFrustumEXT((int)mode, left, right, bottom, top, zNear, zFar);
			LogCommand("glMatrixFrustumEXT", null, mode, left, right, bottom, top, zNear, zFar			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixOrthoEXT: Binding for glMatrixOrthoEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="left">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="right">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="bottom">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="top">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="zNear">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="zFar">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixOrthoEXT(MatrixMode mode, double left, double right, double bottom, double top, double zNear, double zFar)
		{
			Debug.Assert(Delegates.pglMatrixOrthoEXT != null, "pglMatrixOrthoEXT not implemented");
			Delegates.pglMatrixOrthoEXT((int)mode, left, right, bottom, top, zNear, zFar);
			LogCommand("glMatrixOrthoEXT", null, mode, left, right, bottom, top, zNear, zFar			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixPopEXT: Binding for glMatrixPopEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixPopEXT(MatrixMode mode)
		{
			Debug.Assert(Delegates.pglMatrixPopEXT != null, "pglMatrixPopEXT not implemented");
			Delegates.pglMatrixPopEXT((int)mode);
			LogCommand("glMatrixPopEXT", null, mode			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixPushEXT: Binding for glMatrixPushEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixPushEXT(MatrixMode mode)
		{
			Debug.Assert(Delegates.pglMatrixPushEXT != null, "pglMatrixPushEXT not implemented");
			Delegates.pglMatrixPushEXT((int)mode);
			LogCommand("glMatrixPushEXT", null, mode			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glClientAttribDefaultEXT: Binding for glClientAttribDefaultEXT.
		/// </summary>
		/// <param name="mask">
		/// A <see cref="T:ClientAttribMask"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ClientAttribDefaultEXT(ClientAttribMask mask)
		{
			Debug.Assert(Delegates.pglClientAttribDefaultEXT != null, "pglClientAttribDefaultEXT not implemented");
			Delegates.pglClientAttribDefaultEXT((uint)mask);
			LogCommand("glClientAttribDefaultEXT", null, mask			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glPushClientAttribDefaultEXT: Binding for glPushClientAttribDefaultEXT.
		/// </summary>
		/// <param name="mask">
		/// A <see cref="T:ClientAttribMask"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void PushClientAttribDefaultEXT(ClientAttribMask mask)
		{
			Debug.Assert(Delegates.pglPushClientAttribDefaultEXT != null, "pglPushClientAttribDefaultEXT not implemented");
			Delegates.pglPushClientAttribDefaultEXT((uint)mask);
			LogCommand("glPushClientAttribDefaultEXT", null, mask			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterfEXT: Binding for glTextureParameterfEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterEXT(uint texture, TextureTarget target, TextureParameterName pname, float param)
		{
			Debug.Assert(Delegates.pglTextureParameterfEXT != null, "pglTextureParameterfEXT not implemented");
			Delegates.pglTextureParameterfEXT(texture, (int)target, (int)pname, param);
			LogCommand("glTextureParameterfEXT", null, texture, target, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterfvEXT: Binding for glTextureParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterEXT(uint texture, TextureTarget target, TextureParameterName pname, float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglTextureParameterfvEXT != null, "pglTextureParameterfvEXT not implemented");
					Delegates.pglTextureParameterfvEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glTextureParameterfvEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterfvEXT: Binding for glTextureParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void TextureParameterEXT(uint texture, TextureTarget target, TextureParameterName pname, float* @params)
		{
			Debug.Assert(Delegates.pglTextureParameterfvEXT != null, "pglTextureParameterfvEXT not implemented");
			Delegates.pglTextureParameterfvEXT(texture, (int)target, (int)pname, @params);
			LogCommand("glTextureParameterfvEXT", null, texture, target, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterfvEXT: Binding for glTextureParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterfEXT<T>(uint texture, TextureTarget target, TextureParameterName pname, T @params) where T : struct
		{
			Debug.Assert(Delegates.pglTextureParameterfvEXT != null, "pglTextureParameterfvEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglTextureParameterfvEXT(texture, (int)target, (int)pname, (float*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglTextureParameterfvEXT(texture, (int)target, (int)pname, (float*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glTextureParameterfvEXT", null, texture, target, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameteriEXT: Binding for glTextureParameteriEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterEXT(uint texture, TextureTarget target, TextureParameterName pname, int param)
		{
			Debug.Assert(Delegates.pglTextureParameteriEXT != null, "pglTextureParameteriEXT not implemented");
			Delegates.pglTextureParameteriEXT(texture, (int)target, (int)pname, param);
			LogCommand("glTextureParameteriEXT", null, texture, target, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterivEXT: Binding for glTextureParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterEXT(uint texture, TextureTarget target, TextureParameterName pname, int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglTextureParameterivEXT != null, "pglTextureParameterivEXT not implemented");
					Delegates.pglTextureParameterivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glTextureParameterivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterivEXT: Binding for glTextureParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void TextureParameterEXT(uint texture, TextureTarget target, TextureParameterName pname, int* @params)
		{
			Debug.Assert(Delegates.pglTextureParameterivEXT != null, "pglTextureParameterivEXT not implemented");
			Delegates.pglTextureParameterivEXT(texture, (int)target, (int)pname, @params);
			LogCommand("glTextureParameterivEXT", null, texture, target, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterivEXT: Binding for glTextureParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameteriEXT<T>(uint texture, TextureTarget target, TextureParameterName pname, T @params) where T : struct
		{
			Debug.Assert(Delegates.pglTextureParameterivEXT != null, "pglTextureParameterivEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglTextureParameterivEXT(texture, (int)target, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglTextureParameterivEXT(texture, (int)target, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glTextureParameterivEXT", null, texture, target, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureImage1DEXT: Binding for glTextureImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureImage1DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int border, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglTextureImage1DEXT != null, "pglTextureImage1DEXT not implemented");
			Delegates.pglTextureImage1DEXT(texture, (int)target, level, (int)internalformat, width, border, (int)format, (int)type, pixels);
			LogCommand("glTextureImage1DEXT", null, texture, target, level, internalformat, width, border, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureImage1DEXT: Binding for glTextureImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureImage1DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int border, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				TextureImage1DEXT(texture, target, level, internalformat, width, border, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glTextureImage2DEXT: Binding for glTextureImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureImage2DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglTextureImage2DEXT != null, "pglTextureImage2DEXT not implemented");
			Delegates.pglTextureImage2DEXT(texture, (int)target, level, (int)internalformat, width, height, border, (int)format, (int)type, pixels);
			LogCommand("glTextureImage2DEXT", null, texture, target, level, internalformat, width, height, border, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureImage2DEXT: Binding for glTextureImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureImage2DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				TextureImage2DEXT(texture, target, level, internalformat, width, height, border, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glTextureSubImage1DEXT: Binding for glTextureSubImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureSubImage1DEXT(uint texture, TextureTarget target, int level, int xoffset, int width, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglTextureSubImage1DEXT != null, "pglTextureSubImage1DEXT not implemented");
			Delegates.pglTextureSubImage1DEXT(texture, (int)target, level, xoffset, width, (int)format, (int)type, pixels);
			LogCommand("glTextureSubImage1DEXT", null, texture, target, level, xoffset, width, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureSubImage1DEXT: Binding for glTextureSubImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureSubImage1DEXT(uint texture, TextureTarget target, int level, int xoffset, int width, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				TextureSubImage1DEXT(texture, target, level, xoffset, width, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glTextureSubImage2DEXT: Binding for glTextureSubImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureSubImage2DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglTextureSubImage2DEXT != null, "pglTextureSubImage2DEXT not implemented");
			Delegates.pglTextureSubImage2DEXT(texture, (int)target, level, xoffset, yoffset, width, height, (int)format, (int)type, pixels);
			LogCommand("glTextureSubImage2DEXT", null, texture, target, level, xoffset, yoffset, width, height, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureSubImage2DEXT: Binding for glTextureSubImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureSubImage2DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				TextureSubImage2DEXT(texture, target, level, xoffset, yoffset, width, height, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glCopyTextureImage1DEXT: Binding for glCopyTextureImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyTextureImage1DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int x, int y, int width, int border)
		{
			Debug.Assert(Delegates.pglCopyTextureImage1DEXT != null, "pglCopyTextureImage1DEXT not implemented");
			Delegates.pglCopyTextureImage1DEXT(texture, (int)target, level, (int)internalformat, x, y, width, border);
			LogCommand("glCopyTextureImage1DEXT", null, texture, target, level, internalformat, x, y, width, border			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCopyTextureImage2DEXT: Binding for glCopyTextureImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyTextureImage2DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int x, int y, int width, int height, int border)
		{
			Debug.Assert(Delegates.pglCopyTextureImage2DEXT != null, "pglCopyTextureImage2DEXT not implemented");
			Delegates.pglCopyTextureImage2DEXT(texture, (int)target, level, (int)internalformat, x, y, width, height, border);
			LogCommand("glCopyTextureImage2DEXT", null, texture, target, level, internalformat, x, y, width, height, border			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCopyTextureSubImage1DEXT: Binding for glCopyTextureSubImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyTextureSubImage1DEXT(uint texture, TextureTarget target, int level, int xoffset, int x, int y, int width)
		{
			Debug.Assert(Delegates.pglCopyTextureSubImage1DEXT != null, "pglCopyTextureSubImage1DEXT not implemented");
			Delegates.pglCopyTextureSubImage1DEXT(texture, (int)target, level, xoffset, x, y, width);
			LogCommand("glCopyTextureSubImage1DEXT", null, texture, target, level, xoffset, x, y, width			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCopyTextureSubImage2DEXT: Binding for glCopyTextureSubImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyTextureSubImage2DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int x, int y, int width, int height)
		{
			Debug.Assert(Delegates.pglCopyTextureSubImage2DEXT != null, "pglCopyTextureSubImage2DEXT not implemented");
			Delegates.pglCopyTextureSubImage2DEXT(texture, (int)target, level, xoffset, yoffset, x, y, width, height);
			LogCommand("glCopyTextureSubImage2DEXT", null, texture, target, level, xoffset, yoffset, x, y, width, height			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureImageEXT: Binding for glGetTextureImageEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureImageEXT(uint texture, TextureTarget target, int level, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglGetTextureImageEXT != null, "pglGetTextureImageEXT not implemented");
			Delegates.pglGetTextureImageEXT(texture, (int)target, level, (int)format, (int)type, pixels);
			LogCommand("glGetTextureImageEXT", null, texture, target, level, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureImageEXT: Binding for glGetTextureImageEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureImageEXT(uint texture, TextureTarget target, int level, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				GetTextureImageEXT(texture, target, level, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glGetTextureParameterfvEXT: Binding for glGetTextureParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterEXT(uint texture, TextureTarget target, GetTextureParameter pname, [Out] float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetTextureParameterfvEXT != null, "pglGetTextureParameterfvEXT not implemented");
					Delegates.pglGetTextureParameterfvEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glGetTextureParameterfvEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterfvEXT: Binding for glGetTextureParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterEXT(uint texture, TextureTarget target, GetTextureParameter pname, out float @params)
		{
			unsafe {
				fixed (float* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetTextureParameterfvEXT != null, "pglGetTextureParameterfvEXT not implemented");
					Delegates.pglGetTextureParameterfvEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glGetTextureParameterfvEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterfvEXT: Binding for glGetTextureParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetTextureParameterEXT(uint texture, TextureTarget target, GetTextureParameter pname, [Out] float* @params)
		{
			Debug.Assert(Delegates.pglGetTextureParameterfvEXT != null, "pglGetTextureParameterfvEXT not implemented");
			Delegates.pglGetTextureParameterfvEXT(texture, (int)target, (int)pname, @params);
			LogCommand("glGetTextureParameterfvEXT", null, texture, target, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterfvEXT: Binding for glGetTextureParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterfEXT<T>(uint texture, TextureTarget target, GetTextureParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetTextureParameterfvEXT != null, "pglGetTextureParameterfvEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetTextureParameterfvEXT(texture, (int)target, (int)pname, (float*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetTextureParameterfvEXT(texture, (int)target, (int)pname, (float*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetTextureParameterfvEXT", null, texture, target, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterivEXT: Binding for glGetTextureParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterEXT(uint texture, TextureTarget target, GetTextureParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetTextureParameterivEXT != null, "pglGetTextureParameterivEXT not implemented");
					Delegates.pglGetTextureParameterivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glGetTextureParameterivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterivEXT: Binding for glGetTextureParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterEXT(uint texture, TextureTarget target, GetTextureParameter pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetTextureParameterivEXT != null, "pglGetTextureParameterivEXT not implemented");
					Delegates.pglGetTextureParameterivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glGetTextureParameterivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterivEXT: Binding for glGetTextureParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetTextureParameterEXT(uint texture, TextureTarget target, GetTextureParameter pname, [Out] int* @params)
		{
			Debug.Assert(Delegates.pglGetTextureParameterivEXT != null, "pglGetTextureParameterivEXT not implemented");
			Delegates.pglGetTextureParameterivEXT(texture, (int)target, (int)pname, @params);
			LogCommand("glGetTextureParameterivEXT", null, texture, target, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterivEXT: Binding for glGetTextureParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameteriEXT<T>(uint texture, TextureTarget target, GetTextureParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetTextureParameterivEXT != null, "pglGetTextureParameterivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetTextureParameterivEXT(texture, (int)target, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetTextureParameterivEXT(texture, (int)target, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetTextureParameterivEXT", null, texture, target, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureLevelParameterfvEXT: Binding for glGetTextureLevelParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureLevelParameterEXT(uint texture, TextureTarget target, int level, GetTextureParameter pname, [Out] float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetTextureLevelParameterfvEXT != null, "pglGetTextureLevelParameterfvEXT not implemented");
					Delegates.pglGetTextureLevelParameterfvEXT(texture, (int)target, level, (int)pname, p_params);
					LogCommand("glGetTextureLevelParameterfvEXT", null, texture, target, level, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureLevelParameterfvEXT: Binding for glGetTextureLevelParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureLevelParameterEXT(uint texture, TextureTarget target, int level, GetTextureParameter pname, out float @params)
		{
			unsafe {
				fixed (float* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetTextureLevelParameterfvEXT != null, "pglGetTextureLevelParameterfvEXT not implemented");
					Delegates.pglGetTextureLevelParameterfvEXT(texture, (int)target, level, (int)pname, p_params);
					LogCommand("glGetTextureLevelParameterfvEXT", null, texture, target, level, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureLevelParameterfvEXT: Binding for glGetTextureLevelParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetTextureLevelParameterEXT(uint texture, TextureTarget target, int level, GetTextureParameter pname, [Out] float* @params)
		{
			Debug.Assert(Delegates.pglGetTextureLevelParameterfvEXT != null, "pglGetTextureLevelParameterfvEXT not implemented");
			Delegates.pglGetTextureLevelParameterfvEXT(texture, (int)target, level, (int)pname, @params);
			LogCommand("glGetTextureLevelParameterfvEXT", null, texture, target, level, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureLevelParameterfvEXT: Binding for glGetTextureLevelParameterfvEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureLevelParameterfEXT<T>(uint texture, TextureTarget target, int level, GetTextureParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetTextureLevelParameterfvEXT != null, "pglGetTextureLevelParameterfvEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetTextureLevelParameterfvEXT(texture, (int)target, level, (int)pname, (float*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetTextureLevelParameterfvEXT(texture, (int)target, level, (int)pname, (float*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetTextureLevelParameterfvEXT", null, texture, target, level, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureLevelParameterivEXT: Binding for glGetTextureLevelParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureLevelParameterEXT(uint texture, TextureTarget target, int level, GetTextureParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetTextureLevelParameterivEXT != null, "pglGetTextureLevelParameterivEXT not implemented");
					Delegates.pglGetTextureLevelParameterivEXT(texture, (int)target, level, (int)pname, p_params);
					LogCommand("glGetTextureLevelParameterivEXT", null, texture, target, level, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureLevelParameterivEXT: Binding for glGetTextureLevelParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureLevelParameterEXT(uint texture, TextureTarget target, int level, GetTextureParameter pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetTextureLevelParameterivEXT != null, "pglGetTextureLevelParameterivEXT not implemented");
					Delegates.pglGetTextureLevelParameterivEXT(texture, (int)target, level, (int)pname, p_params);
					LogCommand("glGetTextureLevelParameterivEXT", null, texture, target, level, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureLevelParameterivEXT: Binding for glGetTextureLevelParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetTextureLevelParameterEXT(uint texture, TextureTarget target, int level, GetTextureParameter pname, [Out] int* @params)
		{
			Debug.Assert(Delegates.pglGetTextureLevelParameterivEXT != null, "pglGetTextureLevelParameterivEXT not implemented");
			Delegates.pglGetTextureLevelParameterivEXT(texture, (int)target, level, (int)pname, @params);
			LogCommand("glGetTextureLevelParameterivEXT", null, texture, target, level, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureLevelParameterivEXT: Binding for glGetTextureLevelParameterivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureLevelParameteriEXT<T>(uint texture, TextureTarget target, int level, GetTextureParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetTextureLevelParameterivEXT != null, "pglGetTextureLevelParameterivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetTextureLevelParameterivEXT(texture, (int)target, level, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetTextureLevelParameterivEXT(texture, (int)target, level, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetTextureLevelParameterivEXT", null, texture, target, level, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureImage3DEXT: Binding for glTextureImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureImage3DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglTextureImage3DEXT != null, "pglTextureImage3DEXT not implemented");
			Delegates.pglTextureImage3DEXT(texture, (int)target, level, (int)internalformat, width, height, depth, border, (int)format, (int)type, pixels);
			LogCommand("glTextureImage3DEXT", null, texture, target, level, internalformat, width, height, depth, border, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureImage3DEXT: Binding for glTextureImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureImage3DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				TextureImage3DEXT(texture, target, level, internalformat, width, height, depth, border, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glTextureSubImage3DEXT: Binding for glTextureSubImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureSubImage3DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglTextureSubImage3DEXT != null, "pglTextureSubImage3DEXT not implemented");
			Delegates.pglTextureSubImage3DEXT(texture, (int)target, level, xoffset, yoffset, zoffset, width, height, depth, (int)format, (int)type, pixels);
			LogCommand("glTextureSubImage3DEXT", null, texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureSubImage3DEXT: Binding for glTextureSubImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureSubImage3DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				TextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glCopyTextureSubImage3DEXT: Binding for glCopyTextureSubImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyTextureSubImage3DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height)
		{
			Debug.Assert(Delegates.pglCopyTextureSubImage3DEXT != null, "pglCopyTextureSubImage3DEXT not implemented");
			Delegates.pglCopyTextureSubImage3DEXT(texture, (int)target, level, xoffset, yoffset, zoffset, x, y, width, height);
			LogCommand("glCopyTextureSubImage3DEXT", null, texture, target, level, xoffset, yoffset, zoffset, x, y, width, height			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glBindMultiTextureEXT: Binding for glBindMultiTextureEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void BindMultiTextureEXT(TextureUnit texunit, TextureTarget target, uint texture)
		{
			Debug.Assert(Delegates.pglBindMultiTextureEXT != null, "pglBindMultiTextureEXT not implemented");
			Delegates.pglBindMultiTextureEXT((int)texunit, (int)target, texture);
			LogCommand("glBindMultiTextureEXT", null, texunit, target, texture			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexCoordPointerEXT: Binding for glMultiTexCoordPointerEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:TexCoordPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexCoordPointerEXT(TextureUnit texunit, int size, TexCoordPointerType type, int stride, IntPtr pointer)
		{
			Debug.Assert(Delegates.pglMultiTexCoordPointerEXT != null, "pglMultiTexCoordPointerEXT not implemented");
			Delegates.pglMultiTexCoordPointerEXT((int)texunit, size, (int)type, stride, pointer);
			LogCommand("glMultiTexCoordPointerEXT", null, texunit, size, type, stride, pointer			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexCoordPointerEXT: Binding for glMultiTexCoordPointerEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:TexCoordPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexCoordPointerEXT(TextureUnit texunit, int size, TexCoordPointerType type, int stride, object pointer)
		{
			GCHandle pin_pointer = GCHandle.Alloc(pointer, GCHandleType.Pinned);
			try {
				MultiTexCoordPointerEXT(texunit, size, type, stride, pin_pointer.AddrOfPinnedObject());
			} finally {
				pin_pointer.Free();
			}
		}

		/// <summary>
		/// [GL] glMultiTexEnvfEXT: Binding for glMultiTexEnvfEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureEnvTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureEnvParameter"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexEnvEXT(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, float param)
		{
			Debug.Assert(Delegates.pglMultiTexEnvfEXT != null, "pglMultiTexEnvfEXT not implemented");
			Delegates.pglMultiTexEnvfEXT((int)texunit, (int)target, (int)pname, param);
			LogCommand("glMultiTexEnvfEXT", null, texunit, target, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexEnvfvEXT: Binding for glMultiTexEnvfvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureEnvTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureEnvParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexEnvEXT(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexEnvfvEXT != null, "pglMultiTexEnvfvEXT not implemented");
					Delegates.pglMultiTexEnvfvEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glMultiTexEnvfvEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexEnviEXT: Binding for glMultiTexEnviEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureEnvTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureEnvParameter"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexEnvEXT(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, int param)
		{
			Debug.Assert(Delegates.pglMultiTexEnviEXT != null, "pglMultiTexEnviEXT not implemented");
			Delegates.pglMultiTexEnviEXT((int)texunit, (int)target, (int)pname, param);
			LogCommand("glMultiTexEnviEXT", null, texunit, target, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexEnvivEXT: Binding for glMultiTexEnvivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureEnvTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureEnvParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexEnvEXT(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexEnvivEXT != null, "pglMultiTexEnvivEXT not implemented");
					Delegates.pglMultiTexEnvivEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glMultiTexEnvivEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexGendEXT: Binding for glMultiTexGendEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, double param)
		{
			Debug.Assert(Delegates.pglMultiTexGendEXT != null, "pglMultiTexGendEXT not implemented");
			Delegates.pglMultiTexGendEXT((int)texunit, (int)coord, (int)pname, param);
			LogCommand("glMultiTexGendEXT", null, texunit, coord, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexGendvEXT: Binding for glMultiTexGendvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, double[] @params)
		{
			unsafe {
				fixed (double* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexGendvEXT != null, "pglMultiTexGendvEXT not implemented");
					Delegates.pglMultiTexGendvEXT((int)texunit, (int)coord, (int)pname, p_params);
					LogCommand("glMultiTexGendvEXT", null, texunit, coord, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexGenfEXT: Binding for glMultiTexGenfEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, float param)
		{
			Debug.Assert(Delegates.pglMultiTexGenfEXT != null, "pglMultiTexGenfEXT not implemented");
			Delegates.pglMultiTexGenfEXT((int)texunit, (int)coord, (int)pname, param);
			LogCommand("glMultiTexGenfEXT", null, texunit, coord, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexGenfvEXT: Binding for glMultiTexGenfvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexGenfvEXT != null, "pglMultiTexGenfvEXT not implemented");
					Delegates.pglMultiTexGenfvEXT((int)texunit, (int)coord, (int)pname, p_params);
					LogCommand("glMultiTexGenfvEXT", null, texunit, coord, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexGeniEXT: Binding for glMultiTexGeniEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, int param)
		{
			Debug.Assert(Delegates.pglMultiTexGeniEXT != null, "pglMultiTexGeniEXT not implemented");
			Delegates.pglMultiTexGeniEXT((int)texunit, (int)coord, (int)pname, param);
			LogCommand("glMultiTexGeniEXT", null, texunit, coord, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexGenivEXT: Binding for glMultiTexGenivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexGenivEXT != null, "pglMultiTexGenivEXT not implemented");
					Delegates.pglMultiTexGenivEXT((int)texunit, (int)coord, (int)pname, p_params);
					LogCommand("glMultiTexGenivEXT", null, texunit, coord, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexEnvfvEXT: Binding for glGetMultiTexEnvfvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureEnvTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureEnvParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexEnvEXT(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, [Out] float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexEnvfvEXT != null, "pglGetMultiTexEnvfvEXT not implemented");
					Delegates.pglGetMultiTexEnvfvEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glGetMultiTexEnvfvEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexEnvivEXT: Binding for glGetMultiTexEnvivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureEnvTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureEnvParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexEnvEXT(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexEnvivEXT != null, "pglGetMultiTexEnvivEXT not implemented");
					Delegates.pglGetMultiTexEnvivEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glGetMultiTexEnvivEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexGendvEXT: Binding for glGetMultiTexGendvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] double[] @params)
		{
			unsafe {
				fixed (double* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexGendvEXT != null, "pglGetMultiTexGendvEXT not implemented");
					Delegates.pglGetMultiTexGendvEXT((int)texunit, (int)coord, (int)pname, p_params);
					LogCommand("glGetMultiTexGendvEXT", null, texunit, coord, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexGenfvEXT: Binding for glGetMultiTexGenfvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexGenfvEXT != null, "pglGetMultiTexGenfvEXT not implemented");
					Delegates.pglGetMultiTexGenfvEXT((int)texunit, (int)coord, (int)pname, p_params);
					LogCommand("glGetMultiTexGenfvEXT", null, texunit, coord, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexGenivEXT: Binding for glGetMultiTexGenivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="coord">
		/// A <see cref="T:TextureCoordName"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureGenParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexGenEXT(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexGenivEXT != null, "pglGetMultiTexGenivEXT not implemented");
					Delegates.pglGetMultiTexGenivEXT((int)texunit, (int)coord, (int)pname, p_params);
					LogCommand("glGetMultiTexGenivEXT", null, texunit, coord, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexParameteriEXT: Binding for glMultiTexParameteriEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexParameterEXT(TextureUnit texunit, TextureTarget target, TextureParameterName pname, int param)
		{
			Debug.Assert(Delegates.pglMultiTexParameteriEXT != null, "pglMultiTexParameteriEXT not implemented");
			Delegates.pglMultiTexParameteriEXT((int)texunit, (int)target, (int)pname, param);
			LogCommand("glMultiTexParameteriEXT", null, texunit, target, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexParameterivEXT: Binding for glMultiTexParameterivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexParameterEXT(TextureUnit texunit, TextureTarget target, TextureParameterName pname, int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexParameterivEXT != null, "pglMultiTexParameterivEXT not implemented");
					Delegates.pglMultiTexParameterivEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glMultiTexParameterivEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexParameterfEXT: Binding for glMultiTexParameterfEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexParameterEXT(TextureUnit texunit, TextureTarget target, TextureParameterName pname, float param)
		{
			Debug.Assert(Delegates.pglMultiTexParameterfEXT != null, "pglMultiTexParameterfEXT not implemented");
			Delegates.pglMultiTexParameterfEXT((int)texunit, (int)target, (int)pname, param);
			LogCommand("glMultiTexParameterfEXT", null, texunit, target, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexParameterfvEXT: Binding for glMultiTexParameterfvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexParameterEXT(TextureUnit texunit, TextureTarget target, TextureParameterName pname, float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexParameterfvEXT != null, "pglMultiTexParameterfvEXT not implemented");
					Delegates.pglMultiTexParameterfvEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glMultiTexParameterfvEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexImage1DEXT: Binding for glMultiTexImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexImage1DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int border, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglMultiTexImage1DEXT != null, "pglMultiTexImage1DEXT not implemented");
			Delegates.pglMultiTexImage1DEXT((int)texunit, (int)target, level, (int)internalformat, width, border, (int)format, (int)type, pixels);
			LogCommand("glMultiTexImage1DEXT", null, texunit, target, level, internalformat, width, border, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexImage1DEXT: Binding for glMultiTexImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexImage1DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int border, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				MultiTexImage1DEXT(texunit, target, level, internalformat, width, border, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glMultiTexImage2DEXT: Binding for glMultiTexImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexImage2DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglMultiTexImage2DEXT != null, "pglMultiTexImage2DEXT not implemented");
			Delegates.pglMultiTexImage2DEXT((int)texunit, (int)target, level, (int)internalformat, width, height, border, (int)format, (int)type, pixels);
			LogCommand("glMultiTexImage2DEXT", null, texunit, target, level, internalformat, width, height, border, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexImage2DEXT: Binding for glMultiTexImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexImage2DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				MultiTexImage2DEXT(texunit, target, level, internalformat, width, height, border, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glMultiTexSubImage1DEXT: Binding for glMultiTexSubImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexSubImage1DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int width, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglMultiTexSubImage1DEXT != null, "pglMultiTexSubImage1DEXT not implemented");
			Delegates.pglMultiTexSubImage1DEXT((int)texunit, (int)target, level, xoffset, width, (int)format, (int)type, pixels);
			LogCommand("glMultiTexSubImage1DEXT", null, texunit, target, level, xoffset, width, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexSubImage1DEXT: Binding for glMultiTexSubImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexSubImage1DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int width, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				MultiTexSubImage1DEXT(texunit, target, level, xoffset, width, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glMultiTexSubImage2DEXT: Binding for glMultiTexSubImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexSubImage2DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglMultiTexSubImage2DEXT != null, "pglMultiTexSubImage2DEXT not implemented");
			Delegates.pglMultiTexSubImage2DEXT((int)texunit, (int)target, level, xoffset, yoffset, width, height, (int)format, (int)type, pixels);
			LogCommand("glMultiTexSubImage2DEXT", null, texunit, target, level, xoffset, yoffset, width, height, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexSubImage2DEXT: Binding for glMultiTexSubImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexSubImage2DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				MultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, width, height, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glCopyMultiTexImage1DEXT: Binding for glCopyMultiTexImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyMultiTexImage1DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int x, int y, int width, int border)
		{
			Debug.Assert(Delegates.pglCopyMultiTexImage1DEXT != null, "pglCopyMultiTexImage1DEXT not implemented");
			Delegates.pglCopyMultiTexImage1DEXT((int)texunit, (int)target, level, (int)internalformat, x, y, width, border);
			LogCommand("glCopyMultiTexImage1DEXT", null, texunit, target, level, internalformat, x, y, width, border			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCopyMultiTexImage2DEXT: Binding for glCopyMultiTexImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyMultiTexImage2DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int x, int y, int width, int height, int border)
		{
			Debug.Assert(Delegates.pglCopyMultiTexImage2DEXT != null, "pglCopyMultiTexImage2DEXT not implemented");
			Delegates.pglCopyMultiTexImage2DEXT((int)texunit, (int)target, level, (int)internalformat, x, y, width, height, border);
			LogCommand("glCopyMultiTexImage2DEXT", null, texunit, target, level, internalformat, x, y, width, height, border			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCopyMultiTexSubImage1DEXT: Binding for glCopyMultiTexSubImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyMultiTexSubImage1DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int x, int y, int width)
		{
			Debug.Assert(Delegates.pglCopyMultiTexSubImage1DEXT != null, "pglCopyMultiTexSubImage1DEXT not implemented");
			Delegates.pglCopyMultiTexSubImage1DEXT((int)texunit, (int)target, level, xoffset, x, y, width);
			LogCommand("glCopyMultiTexSubImage1DEXT", null, texunit, target, level, xoffset, x, y, width			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCopyMultiTexSubImage2DEXT: Binding for glCopyMultiTexSubImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyMultiTexSubImage2DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int x, int y, int width, int height)
		{
			Debug.Assert(Delegates.pglCopyMultiTexSubImage2DEXT != null, "pglCopyMultiTexSubImage2DEXT not implemented");
			Delegates.pglCopyMultiTexSubImage2DEXT((int)texunit, (int)target, level, xoffset, yoffset, x, y, width, height);
			LogCommand("glCopyMultiTexSubImage2DEXT", null, texunit, target, level, xoffset, yoffset, x, y, width, height			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexImageEXT: Binding for glGetMultiTexImageEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexImageEXT(TextureUnit texunit, TextureTarget target, int level, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglGetMultiTexImageEXT != null, "pglGetMultiTexImageEXT not implemented");
			Delegates.pglGetMultiTexImageEXT((int)texunit, (int)target, level, (int)format, (int)type, pixels);
			LogCommand("glGetMultiTexImageEXT", null, texunit, target, level, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexImageEXT: Binding for glGetMultiTexImageEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexImageEXT(TextureUnit texunit, TextureTarget target, int level, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				GetMultiTexImageEXT(texunit, target, level, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glGetMultiTexParameterfvEXT: Binding for glGetMultiTexParameterfvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexParameterEXT(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexParameterfvEXT != null, "pglGetMultiTexParameterfvEXT not implemented");
					Delegates.pglGetMultiTexParameterfvEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glGetMultiTexParameterfvEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexParameterivEXT: Binding for glGetMultiTexParameterivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexParameterEXT(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexParameterivEXT != null, "pglGetMultiTexParameterivEXT not implemented");
					Delegates.pglGetMultiTexParameterivEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glGetMultiTexParameterivEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexLevelParameterfvEXT: Binding for glGetMultiTexLevelParameterfvEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexLevelParameterEXT(TextureUnit texunit, TextureTarget target, int level, GetTextureParameter pname, [Out] float[] @params)
		{
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexLevelParameterfvEXT != null, "pglGetMultiTexLevelParameterfvEXT not implemented");
					Delegates.pglGetMultiTexLevelParameterfvEXT((int)texunit, (int)target, level, (int)pname, p_params);
					LogCommand("glGetMultiTexLevelParameterfvEXT", null, texunit, target, level, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexLevelParameterivEXT: Binding for glGetMultiTexLevelParameterivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexLevelParameterEXT(TextureUnit texunit, TextureTarget target, int level, GetTextureParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexLevelParameterivEXT != null, "pglGetMultiTexLevelParameterivEXT not implemented");
					Delegates.pglGetMultiTexLevelParameterivEXT((int)texunit, (int)target, level, (int)pname, p_params);
					LogCommand("glGetMultiTexLevelParameterivEXT", null, texunit, target, level, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexImage3DEXT: Binding for glMultiTexImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexImage3DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglMultiTexImage3DEXT != null, "pglMultiTexImage3DEXT not implemented");
			Delegates.pglMultiTexImage3DEXT((int)texunit, (int)target, level, (int)internalformat, width, height, depth, border, (int)format, (int)type, pixels);
			LogCommand("glMultiTexImage3DEXT", null, texunit, target, level, internalformat, width, height, depth, border, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexImage3DEXT: Binding for glMultiTexImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexImage3DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				MultiTexImage3DEXT(texunit, target, level, internalformat, width, height, depth, border, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glMultiTexSubImage3DEXT: Binding for glMultiTexSubImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexSubImage3DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, PixelType type, IntPtr pixels)
		{
			Debug.Assert(Delegates.pglMultiTexSubImage3DEXT != null, "pglMultiTexSubImage3DEXT not implemented");
			Delegates.pglMultiTexSubImage3DEXT((int)texunit, (int)target, level, xoffset, yoffset, zoffset, width, height, depth, (int)format, (int)type, pixels);
			LogCommand("glMultiTexSubImage3DEXT", null, texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexSubImage3DEXT: Binding for glMultiTexSubImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexSubImage3DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, PixelType type, object pixels)
		{
			GCHandle pin_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				MultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pin_pixels.AddrOfPinnedObject());
			} finally {
				pin_pixels.Free();
			}
		}

		/// <summary>
		/// [GL] glCopyMultiTexSubImage3DEXT: Binding for glCopyMultiTexSubImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CopyMultiTexSubImage3DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height)
		{
			Debug.Assert(Delegates.pglCopyMultiTexSubImage3DEXT != null, "pglCopyMultiTexSubImage3DEXT not implemented");
			Delegates.pglCopyMultiTexSubImage3DEXT((int)texunit, (int)target, level, xoffset, yoffset, zoffset, x, y, width, height);
			LogCommand("glCopyMultiTexSubImage3DEXT", null, texunit, target, level, xoffset, yoffset, zoffset, x, y, width, height			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glEnableClientStateIndexedEXT: Binding for glEnableClientStateIndexedEXT.
		/// </summary>
		/// <param name="array">
		/// A <see cref="T:EnableCap"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void EnableClientStateIndexedEXT(EnableCap array, uint index)
		{
			Debug.Assert(Delegates.pglEnableClientStateIndexedEXT != null, "pglEnableClientStateIndexedEXT not implemented");
			Delegates.pglEnableClientStateIndexedEXT((int)array, index);
			LogCommand("glEnableClientStateIndexedEXT", null, array, index			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glDisableClientStateIndexedEXT: Binding for glDisableClientStateIndexedEXT.
		/// </summary>
		/// <param name="array">
		/// A <see cref="T:EnableCap"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void DisableClientStateIndexedEXT(EnableCap array, uint index)
		{
			Debug.Assert(Delegates.pglDisableClientStateIndexedEXT != null, "pglDisableClientStateIndexedEXT not implemented");
			Delegates.pglDisableClientStateIndexedEXT((int)array, index);
			LogCommand("glDisableClientStateIndexedEXT", null, array, index			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetPointerIndexedvEXT: Binding for glGetPointerIndexedvEXT.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetPointerIndexedEXT(int target, uint index, out IntPtr data)
		{
			unsafe {
				fixed (IntPtr* p_data = &data)
				{
					Debug.Assert(Delegates.pglGetPointerIndexedvEXT != null, "pglGetPointerIndexedvEXT not implemented");
					Delegates.pglGetPointerIndexedvEXT(target, index, p_data);
					LogCommand("glGetPointerIndexedvEXT", null, target, index, data					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetPointerIndexedvEXT: Binding for glGetPointerIndexedvEXT.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetPointerIndexedEXT(int target, uint index, object data)
		{
			GCHandle pin_data = GCHandle.Alloc(data, GCHandleType.Pinned);
			try {
				GetPointerIndexedEXT(target, index, pin_data.AddrOfPinnedObject());
			} finally {
				pin_data.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedTextureImage3DEXT: Binding for glCompressedTextureImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureImage3DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedTextureImage3DEXT != null, "pglCompressedTextureImage3DEXT not implemented");
			Delegates.pglCompressedTextureImage3DEXT(texture, (int)target, level, (int)internalformat, width, height, depth, border, imageSize, bits);
			LogCommand("glCompressedTextureImage3DEXT", null, texture, target, level, internalformat, width, height, depth, border, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedTextureImage3DEXT: Binding for glCompressedTextureImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureImage3DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedTextureImage3DEXT(texture, target, level, internalformat, width, height, depth, border, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedTextureImage2DEXT: Binding for glCompressedTextureImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureImage2DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedTextureImage2DEXT != null, "pglCompressedTextureImage2DEXT not implemented");
			Delegates.pglCompressedTextureImage2DEXT(texture, (int)target, level, (int)internalformat, width, height, border, imageSize, bits);
			LogCommand("glCompressedTextureImage2DEXT", null, texture, target, level, internalformat, width, height, border, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedTextureImage2DEXT: Binding for glCompressedTextureImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureImage2DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedTextureImage2DEXT(texture, target, level, internalformat, width, height, border, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedTextureImage1DEXT: Binding for glCompressedTextureImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureImage1DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int border, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedTextureImage1DEXT != null, "pglCompressedTextureImage1DEXT not implemented");
			Delegates.pglCompressedTextureImage1DEXT(texture, (int)target, level, (int)internalformat, width, border, imageSize, bits);
			LogCommand("glCompressedTextureImage1DEXT", null, texture, target, level, internalformat, width, border, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedTextureImage1DEXT: Binding for glCompressedTextureImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureImage1DEXT(uint texture, TextureTarget target, int level, InternalFormat internalformat, int width, int border, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedTextureImage1DEXT(texture, target, level, internalformat, width, border, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedTextureSubImage3DEXT: Binding for glCompressedTextureSubImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureSubImage3DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedTextureSubImage3DEXT != null, "pglCompressedTextureSubImage3DEXT not implemented");
			Delegates.pglCompressedTextureSubImage3DEXT(texture, (int)target, level, xoffset, yoffset, zoffset, width, height, depth, (int)format, imageSize, bits);
			LogCommand("glCompressedTextureSubImage3DEXT", null, texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedTextureSubImage3DEXT: Binding for glCompressedTextureSubImage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureSubImage3DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedTextureSubImage3DEXT(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedTextureSubImage2DEXT: Binding for glCompressedTextureSubImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureSubImage2DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedTextureSubImage2DEXT != null, "pglCompressedTextureSubImage2DEXT not implemented");
			Delegates.pglCompressedTextureSubImage2DEXT(texture, (int)target, level, xoffset, yoffset, width, height, (int)format, imageSize, bits);
			LogCommand("glCompressedTextureSubImage2DEXT", null, texture, target, level, xoffset, yoffset, width, height, format, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedTextureSubImage2DEXT: Binding for glCompressedTextureSubImage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureSubImage2DEXT(uint texture, TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedTextureSubImage2DEXT(texture, target, level, xoffset, yoffset, width, height, format, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedTextureSubImage1DEXT: Binding for glCompressedTextureSubImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureSubImage1DEXT(uint texture, TextureTarget target, int level, int xoffset, int width, PixelFormat format, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedTextureSubImage1DEXT != null, "pglCompressedTextureSubImage1DEXT not implemented");
			Delegates.pglCompressedTextureSubImage1DEXT(texture, (int)target, level, xoffset, width, (int)format, imageSize, bits);
			LogCommand("glCompressedTextureSubImage1DEXT", null, texture, target, level, xoffset, width, format, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedTextureSubImage1DEXT: Binding for glCompressedTextureSubImage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedTextureSubImage1DEXT(uint texture, TextureTarget target, int level, int xoffset, int width, PixelFormat format, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedTextureSubImage1DEXT(texture, target, level, xoffset, width, format, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glGetCompressedTextureImageEXT: Binding for glGetCompressedTextureImageEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="lod">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="img">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetCompressedTextureImageEXT(uint texture, TextureTarget target, int lod, IntPtr img)
		{
			Debug.Assert(Delegates.pglGetCompressedTextureImageEXT != null, "pglGetCompressedTextureImageEXT not implemented");
			Delegates.pglGetCompressedTextureImageEXT(texture, (int)target, lod, img);
			LogCommand("glGetCompressedTextureImageEXT", null, texture, target, lod, img			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetCompressedTextureImageEXT: Binding for glGetCompressedTextureImageEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="lod">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="img">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetCompressedTextureImageEXT(uint texture, TextureTarget target, int lod, object img)
		{
			GCHandle pin_img = GCHandle.Alloc(img, GCHandleType.Pinned);
			try {
				GetCompressedTextureImageEXT(texture, target, lod, pin_img.AddrOfPinnedObject());
			} finally {
				pin_img.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedMultiTexImage3DEXT: Binding for glCompressedMultiTexImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexImage3DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedMultiTexImage3DEXT != null, "pglCompressedMultiTexImage3DEXT not implemented");
			Delegates.pglCompressedMultiTexImage3DEXT((int)texunit, (int)target, level, (int)internalformat, width, height, depth, border, imageSize, bits);
			LogCommand("glCompressedMultiTexImage3DEXT", null, texunit, target, level, internalformat, width, height, depth, border, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedMultiTexImage3DEXT: Binding for glCompressedMultiTexImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexImage3DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int depth, int border, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedMultiTexImage3DEXT(texunit, target, level, internalformat, width, height, depth, border, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedMultiTexImage2DEXT: Binding for glCompressedMultiTexImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexImage2DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedMultiTexImage2DEXT != null, "pglCompressedMultiTexImage2DEXT not implemented");
			Delegates.pglCompressedMultiTexImage2DEXT((int)texunit, (int)target, level, (int)internalformat, width, height, border, imageSize, bits);
			LogCommand("glCompressedMultiTexImage2DEXT", null, texunit, target, level, internalformat, width, height, border, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedMultiTexImage2DEXT: Binding for glCompressedMultiTexImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexImage2DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int height, int border, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedMultiTexImage2DEXT(texunit, target, level, internalformat, width, height, border, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedMultiTexImage1DEXT: Binding for glCompressedMultiTexImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexImage1DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int border, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedMultiTexImage1DEXT != null, "pglCompressedMultiTexImage1DEXT not implemented");
			Delegates.pglCompressedMultiTexImage1DEXT((int)texunit, (int)target, level, (int)internalformat, width, border, imageSize, bits);
			LogCommand("glCompressedMultiTexImage1DEXT", null, texunit, target, level, internalformat, width, border, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedMultiTexImage1DEXT: Binding for glCompressedMultiTexImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexImage1DEXT(TextureUnit texunit, TextureTarget target, int level, InternalFormat internalformat, int width, int border, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedMultiTexImage1DEXT(texunit, target, level, internalformat, width, border, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedMultiTexSubImage3DEXT: Binding for glCompressedMultiTexSubImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexSubImage3DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedMultiTexSubImage3DEXT != null, "pglCompressedMultiTexSubImage3DEXT not implemented");
			Delegates.pglCompressedMultiTexSubImage3DEXT((int)texunit, (int)target, level, xoffset, yoffset, zoffset, width, height, depth, (int)format, imageSize, bits);
			LogCommand("glCompressedMultiTexSubImage3DEXT", null, texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedMultiTexSubImage3DEXT: Binding for glCompressedMultiTexSubImage3DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexSubImage3DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, PixelFormat format, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedMultiTexSubImage3DEXT(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedMultiTexSubImage2DEXT: Binding for glCompressedMultiTexSubImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexSubImage2DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedMultiTexSubImage2DEXT != null, "pglCompressedMultiTexSubImage2DEXT not implemented");
			Delegates.pglCompressedMultiTexSubImage2DEXT((int)texunit, (int)target, level, xoffset, yoffset, width, height, (int)format, imageSize, bits);
			LogCommand("glCompressedMultiTexSubImage2DEXT", null, texunit, target, level, xoffset, yoffset, width, height, format, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedMultiTexSubImage2DEXT: Binding for glCompressedMultiTexSubImage2DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexSubImage2DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int yoffset, int width, int height, PixelFormat format, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedMultiTexSubImage2DEXT(texunit, target, level, xoffset, yoffset, width, height, format, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glCompressedMultiTexSubImage1DEXT: Binding for glCompressedMultiTexSubImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexSubImage1DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int width, PixelFormat format, int imageSize, IntPtr bits)
		{
			Debug.Assert(Delegates.pglCompressedMultiTexSubImage1DEXT != null, "pglCompressedMultiTexSubImage1DEXT not implemented");
			Delegates.pglCompressedMultiTexSubImage1DEXT((int)texunit, (int)target, level, xoffset, width, (int)format, imageSize, bits);
			LogCommand("glCompressedMultiTexSubImage1DEXT", null, texunit, target, level, xoffset, width, format, imageSize, bits			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCompressedMultiTexSubImage1DEXT: Binding for glCompressedMultiTexSubImage1DEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="imageSize">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="bits">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void CompressedMultiTexSubImage1DEXT(TextureUnit texunit, TextureTarget target, int level, int xoffset, int width, PixelFormat format, int imageSize, object bits)
		{
			GCHandle pin_bits = GCHandle.Alloc(bits, GCHandleType.Pinned);
			try {
				CompressedMultiTexSubImage1DEXT(texunit, target, level, xoffset, width, format, imageSize, pin_bits.AddrOfPinnedObject());
			} finally {
				pin_bits.Free();
			}
		}

		/// <summary>
		/// [GL] glGetCompressedMultiTexImageEXT: Binding for glGetCompressedMultiTexImageEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="lod">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="img">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetCompressedMultiTexImageEXT(TextureUnit texunit, TextureTarget target, int lod, IntPtr img)
		{
			Debug.Assert(Delegates.pglGetCompressedMultiTexImageEXT != null, "pglGetCompressedMultiTexImageEXT not implemented");
			Delegates.pglGetCompressedMultiTexImageEXT((int)texunit, (int)target, lod, img);
			LogCommand("glGetCompressedMultiTexImageEXT", null, texunit, target, lod, img			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetCompressedMultiTexImageEXT: Binding for glGetCompressedMultiTexImageEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="lod">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="img">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetCompressedMultiTexImageEXT(TextureUnit texunit, TextureTarget target, int lod, object img)
		{
			GCHandle pin_img = GCHandle.Alloc(img, GCHandleType.Pinned);
			try {
				GetCompressedMultiTexImageEXT(texunit, target, lod, pin_img.AddrOfPinnedObject());
			} finally {
				pin_img.Free();
			}
		}

		/// <summary>
		/// [GL] glMatrixLoadTransposefEXT: Binding for glMatrixLoadTransposefEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoadTransposeEXT(MatrixMode mode, float[] m)
		{
			Debug.Assert(m.Length >= 16);
			unsafe {
				fixed (float* p_m = m)
				{
					Debug.Assert(Delegates.pglMatrixLoadTransposefEXT != null, "pglMatrixLoadTransposefEXT not implemented");
					Delegates.pglMatrixLoadTransposefEXT((int)mode, p_m);
					LogCommand("glMatrixLoadTransposefEXT", null, mode, m					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixLoadTransposefEXT: Binding for glMatrixLoadTransposefEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoadTransposefEXT<T>(MatrixMode mode, T m) where T : struct
		{
			Debug.Assert(Delegates.pglMatrixLoadTransposefEXT != null, "pglMatrixLoadTransposefEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(m);
			try {
				unsafe {
					Delegates.pglMatrixLoadTransposefEXT((int)mode, (float*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refM = __makeref(m);
				IntPtr refMPtr = *(IntPtr*)(&refM);

				Delegates.pglMatrixLoadTransposefEXT((int)mode, (float*)refMPtr.ToPointer());
			}
			#endif
			LogCommand("glMatrixLoadTransposefEXT", null, mode, m			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixLoadTransposedEXT: Binding for glMatrixLoadTransposedEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoadTransposeEXT(MatrixMode mode, double[] m)
		{
			Debug.Assert(m.Length >= 16);
			unsafe {
				fixed (double* p_m = m)
				{
					Debug.Assert(Delegates.pglMatrixLoadTransposedEXT != null, "pglMatrixLoadTransposedEXT not implemented");
					Delegates.pglMatrixLoadTransposedEXT((int)mode, p_m);
					LogCommand("glMatrixLoadTransposedEXT", null, mode, m					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixLoadTransposedEXT: Binding for glMatrixLoadTransposedEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixLoadTransposedEXT<T>(MatrixMode mode, T m) where T : struct
		{
			Debug.Assert(Delegates.pglMatrixLoadTransposedEXT != null, "pglMatrixLoadTransposedEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(m);
			try {
				unsafe {
					Delegates.pglMatrixLoadTransposedEXT((int)mode, (double*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refM = __makeref(m);
				IntPtr refMPtr = *(IntPtr*)(&refM);

				Delegates.pglMatrixLoadTransposedEXT((int)mode, (double*)refMPtr.ToPointer());
			}
			#endif
			LogCommand("glMatrixLoadTransposedEXT", null, mode, m			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixMultTransposefEXT: Binding for glMatrixMultTransposefEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixMultTransposeEXT(MatrixMode mode, float[] m)
		{
			Debug.Assert(m.Length >= 16);
			unsafe {
				fixed (float* p_m = m)
				{
					Debug.Assert(Delegates.pglMatrixMultTransposefEXT != null, "pglMatrixMultTransposefEXT not implemented");
					Delegates.pglMatrixMultTransposefEXT((int)mode, p_m);
					LogCommand("glMatrixMultTransposefEXT", null, mode, m					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixMultTransposefEXT: Binding for glMatrixMultTransposefEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixMultTransposefEXT<T>(MatrixMode mode, T m) where T : struct
		{
			Debug.Assert(Delegates.pglMatrixMultTransposefEXT != null, "pglMatrixMultTransposefEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(m);
			try {
				unsafe {
					Delegates.pglMatrixMultTransposefEXT((int)mode, (float*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refM = __makeref(m);
				IntPtr refMPtr = *(IntPtr*)(&refM);

				Delegates.pglMatrixMultTransposefEXT((int)mode, (float*)refMPtr.ToPointer());
			}
			#endif
			LogCommand("glMatrixMultTransposefEXT", null, mode, m			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixMultTransposedEXT: Binding for glMatrixMultTransposedEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixMultTransposeEXT(MatrixMode mode, double[] m)
		{
			Debug.Assert(m.Length >= 16);
			unsafe {
				fixed (double* p_m = m)
				{
					Debug.Assert(Delegates.pglMatrixMultTransposedEXT != null, "pglMatrixMultTransposedEXT not implemented");
					Delegates.pglMatrixMultTransposedEXT((int)mode, p_m);
					LogCommand("glMatrixMultTransposedEXT", null, mode, m					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMatrixMultTransposedEXT: Binding for glMatrixMultTransposedEXT.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:MatrixMode"/>.
		/// </param>
		/// <param name="m">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
		public static void MatrixMultTransposedEXT<T>(MatrixMode mode, T m) where T : struct
		{
			Debug.Assert(Delegates.pglMatrixMultTransposedEXT != null, "pglMatrixMultTransposedEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(m);
			try {
				unsafe {
					Delegates.pglMatrixMultTransposedEXT((int)mode, (double*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refM = __makeref(m);
				IntPtr refMPtr = *(IntPtr*)(&refM);

				Delegates.pglMatrixMultTransposedEXT((int)mode, (double*)refMPtr.ToPointer());
			}
			#endif
			LogCommand("glMatrixMultTransposedEXT", null, mode, m			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedBufferDataEXT: Binding for glNamedBufferDataEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="usage">
		/// A <see cref="T:BufferUsage"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedBufferDataEXT(uint buffer, uint size, IntPtr data, BufferUsage usage)
		{
			Debug.Assert(Delegates.pglNamedBufferDataEXT != null, "pglNamedBufferDataEXT not implemented");
			Delegates.pglNamedBufferDataEXT(buffer, size, data, (int)usage);
			LogCommand("glNamedBufferDataEXT", null, buffer, size, data, usage			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedBufferDataEXT: Binding for glNamedBufferDataEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:object"/>.
		/// </param>
		/// <param name="usage">
		/// A <see cref="T:BufferUsage"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedBufferDataEXT(uint buffer, uint size, object data, BufferUsage usage)
		{
			GCHandle pin_data = GCHandle.Alloc(data, GCHandleType.Pinned);
			try {
				NamedBufferDataEXT(buffer, size, pin_data.AddrOfPinnedObject(), usage);
			} finally {
				pin_data.Free();
			}
		}

		/// <summary>
		/// [GL] glMapNamedBufferEXT: Binding for glMapNamedBufferEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="access">
		/// A <see cref="T:BufferAccess"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static IntPtr MapNamedBufferEXT(uint buffer, BufferAccess access)
		{
			IntPtr retValue;

			Debug.Assert(Delegates.pglMapNamedBufferEXT != null, "pglMapNamedBufferEXT not implemented");
			retValue = Delegates.pglMapNamedBufferEXT(buffer, (int)access);
			LogCommand("glMapNamedBufferEXT", retValue, buffer, access			);
			DebugCheckErrors(retValue);

			return (retValue);
		}

		/// <summary>
		/// [GL] glUnmapNamedBufferEXT: Binding for glUnmapNamedBufferEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static bool UnmapNamedBufferEXT(uint buffer)
		{
			bool retValue;

			Debug.Assert(Delegates.pglUnmapNamedBufferEXT != null, "pglUnmapNamedBufferEXT not implemented");
			retValue = Delegates.pglUnmapNamedBufferEXT(buffer);
			LogCommand("glUnmapNamedBufferEXT", retValue, buffer			);
			DebugCheckErrors(retValue);

			return (retValue);
		}

		/// <summary>
		/// [GL] glGetNamedBufferParameterivEXT: Binding for glGetNamedBufferParameterivEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexBufferObjectParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedBufferParameterEXT(uint buffer, VertexBufferObjectParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetNamedBufferParameterivEXT != null, "pglGetNamedBufferParameterivEXT not implemented");
					Delegates.pglGetNamedBufferParameterivEXT(buffer, (int)pname, p_params);
					LogCommand("glGetNamedBufferParameterivEXT", null, buffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedBufferParameterivEXT: Binding for glGetNamedBufferParameterivEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexBufferObjectParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedBufferParameterEXT(uint buffer, VertexBufferObjectParameter pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetNamedBufferParameterivEXT != null, "pglGetNamedBufferParameterivEXT not implemented");
					Delegates.pglGetNamedBufferParameterivEXT(buffer, (int)pname, p_params);
					LogCommand("glGetNamedBufferParameterivEXT", null, buffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedBufferParameterivEXT: Binding for glGetNamedBufferParameterivEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexBufferObjectParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetNamedBufferParameterEXT(uint buffer, VertexBufferObjectParameter pname, [Out] int* @params)
		{
			Debug.Assert(Delegates.pglGetNamedBufferParameterivEXT != null, "pglGetNamedBufferParameterivEXT not implemented");
			Delegates.pglGetNamedBufferParameterivEXT(buffer, (int)pname, @params);
			LogCommand("glGetNamedBufferParameterivEXT", null, buffer, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedBufferParameterivEXT: Binding for glGetNamedBufferParameterivEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexBufferObjectParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedBufferParameteriEXT<T>(uint buffer, VertexBufferObjectParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetNamedBufferParameterivEXT != null, "pglGetNamedBufferParameterivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetNamedBufferParameterivEXT(buffer, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetNamedBufferParameterivEXT(buffer, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetNamedBufferParameterivEXT", null, buffer, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedBufferPointervEXT: Binding for glGetNamedBufferPointervEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexBufferObjectParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedBufferPointerEXT(uint buffer, VertexBufferObjectParameter pname, out IntPtr @params)
		{
			unsafe {
				fixed (IntPtr* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetNamedBufferPointervEXT != null, "pglGetNamedBufferPointervEXT not implemented");
					Delegates.pglGetNamedBufferPointervEXT(buffer, (int)pname, p_params);
					LogCommand("glGetNamedBufferPointervEXT", null, buffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedBufferPointervEXT: Binding for glGetNamedBufferPointervEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexBufferObjectParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedBufferPointerEXT(uint buffer, VertexBufferObjectParameter pname, object @params)
		{
			GCHandle pin_params = GCHandle.Alloc(@params, GCHandleType.Pinned);
			try {
				GetNamedBufferPointerEXT(buffer, pname, pin_params.AddrOfPinnedObject());
			} finally {
				pin_params.Free();
			}
		}

		/// <summary>
		/// [GL] glGetNamedBufferSubDataEXT: Binding for glGetNamedBufferSubDataEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedBufferSubDataEXT(uint buffer, IntPtr offset, uint size, IntPtr data)
		{
			Debug.Assert(Delegates.pglGetNamedBufferSubDataEXT != null, "pglGetNamedBufferSubDataEXT not implemented");
			Delegates.pglGetNamedBufferSubDataEXT(buffer, offset, size, data);
			LogCommand("glGetNamedBufferSubDataEXT", null, buffer, offset, size, data			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedBufferSubDataEXT: Binding for glGetNamedBufferSubDataEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedBufferSubDataEXT(uint buffer, IntPtr offset, uint size, object data)
		{
			GCHandle pin_data = GCHandle.Alloc(data, GCHandleType.Pinned);
			try {
				GetNamedBufferSubDataEXT(buffer, offset, size, pin_data.AddrOfPinnedObject());
			} finally {
				pin_data.Free();
			}
		}

		/// <summary>
		/// [GL] glTextureBufferEXT: Binding for glTextureBufferEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureBufferEXT(uint texture, TextureTarget target, InternalFormat internalformat, uint buffer)
		{
			Debug.Assert(Delegates.pglTextureBufferEXT != null, "pglTextureBufferEXT not implemented");
			Delegates.pglTextureBufferEXT(texture, (int)target, (int)internalformat, buffer);
			LogCommand("glTextureBufferEXT", null, texture, target, internalformat, buffer			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexBufferEXT: Binding for glMultiTexBufferEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexBufferEXT(TextureUnit texunit, TextureTarget target, int internalformat, uint buffer)
		{
			Debug.Assert(Delegates.pglMultiTexBufferEXT != null, "pglMultiTexBufferEXT not implemented");
			Delegates.pglMultiTexBufferEXT((int)texunit, (int)target, internalformat, buffer);
			LogCommand("glMultiTexBufferEXT", null, texunit, target, internalformat, buffer			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterIivEXT: Binding for glTextureParameterIivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterIEXT(uint texture, TextureTarget target, TextureParameterName pname, int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglTextureParameterIivEXT != null, "pglTextureParameterIivEXT not implemented");
					Delegates.pglTextureParameterIivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glTextureParameterIivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterIivEXT: Binding for glTextureParameterIivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void TextureParameterIEXT(uint texture, TextureTarget target, TextureParameterName pname, int* @params)
		{
			Debug.Assert(Delegates.pglTextureParameterIivEXT != null, "pglTextureParameterIivEXT not implemented");
			Delegates.pglTextureParameterIivEXT(texture, (int)target, (int)pname, @params);
			LogCommand("glTextureParameterIivEXT", null, texture, target, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterIivEXT: Binding for glTextureParameterIivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterIiEXT<T>(uint texture, TextureTarget target, TextureParameterName pname, T @params) where T : struct
		{
			Debug.Assert(Delegates.pglTextureParameterIivEXT != null, "pglTextureParameterIivEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglTextureParameterIivEXT(texture, (int)target, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglTextureParameterIivEXT(texture, (int)target, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glTextureParameterIivEXT", null, texture, target, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterIuivEXT: Binding for glTextureParameterIuivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterIEXT(uint texture, TextureTarget target, TextureParameterName pname, uint[] @params)
		{
			unsafe {
				fixed (uint* p_params = @params)
				{
					Debug.Assert(Delegates.pglTextureParameterIuivEXT != null, "pglTextureParameterIuivEXT not implemented");
					Delegates.pglTextureParameterIuivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glTextureParameterIuivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterIuivEXT: Binding for glTextureParameterIuivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void TextureParameterIEXT(uint texture, TextureTarget target, TextureParameterName pname, uint* @params)
		{
			Debug.Assert(Delegates.pglTextureParameterIuivEXT != null, "pglTextureParameterIuivEXT not implemented");
			Delegates.pglTextureParameterIuivEXT(texture, (int)target, (int)pname, @params);
			LogCommand("glTextureParameterIuivEXT", null, texture, target, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureParameterIuivEXT: Binding for glTextureParameterIuivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureParameterIuiEXT<T>(uint texture, TextureTarget target, TextureParameterName pname, T @params) where T : struct
		{
			Debug.Assert(Delegates.pglTextureParameterIuivEXT != null, "pglTextureParameterIuivEXT not implemented");
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglTextureParameterIuivEXT(texture, (int)target, (int)pname, (uint*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglTextureParameterIuivEXT(texture, (int)target, (int)pname, (uint*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glTextureParameterIuivEXT", null, texture, target, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterIivEXT: Binding for glGetTextureParameterIivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterIEXT(uint texture, TextureTarget target, GetTextureParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetTextureParameterIivEXT != null, "pglGetTextureParameterIivEXT not implemented");
					Delegates.pglGetTextureParameterIivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glGetTextureParameterIivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterIivEXT: Binding for glGetTextureParameterIivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterIEXT(uint texture, TextureTarget target, GetTextureParameter pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetTextureParameterIivEXT != null, "pglGetTextureParameterIivEXT not implemented");
					Delegates.pglGetTextureParameterIivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glGetTextureParameterIivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterIivEXT: Binding for glGetTextureParameterIivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetTextureParameterIEXT(uint texture, TextureTarget target, GetTextureParameter pname, [Out] int* @params)
		{
			Debug.Assert(Delegates.pglGetTextureParameterIivEXT != null, "pglGetTextureParameterIivEXT not implemented");
			Delegates.pglGetTextureParameterIivEXT(texture, (int)target, (int)pname, @params);
			LogCommand("glGetTextureParameterIivEXT", null, texture, target, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterIivEXT: Binding for glGetTextureParameterIivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterIiEXT<T>(uint texture, TextureTarget target, GetTextureParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetTextureParameterIivEXT != null, "pglGetTextureParameterIivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetTextureParameterIivEXT(texture, (int)target, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetTextureParameterIivEXT(texture, (int)target, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetTextureParameterIivEXT", null, texture, target, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterIuivEXT: Binding for glGetTextureParameterIuivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterIEXT(uint texture, TextureTarget target, GetTextureParameter pname, [Out] uint[] @params)
		{
			unsafe {
				fixed (uint* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetTextureParameterIuivEXT != null, "pglGetTextureParameterIuivEXT not implemented");
					Delegates.pglGetTextureParameterIuivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glGetTextureParameterIuivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterIuivEXT: Binding for glGetTextureParameterIuivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterIEXT(uint texture, TextureTarget target, GetTextureParameter pname, out uint @params)
		{
			unsafe {
				fixed (uint* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetTextureParameterIuivEXT != null, "pglGetTextureParameterIuivEXT not implemented");
					Delegates.pglGetTextureParameterIuivEXT(texture, (int)target, (int)pname, p_params);
					LogCommand("glGetTextureParameterIuivEXT", null, texture, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterIuivEXT: Binding for glGetTextureParameterIuivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetTextureParameterIEXT(uint texture, TextureTarget target, GetTextureParameter pname, [Out] uint* @params)
		{
			Debug.Assert(Delegates.pglGetTextureParameterIuivEXT != null, "pglGetTextureParameterIuivEXT not implemented");
			Delegates.pglGetTextureParameterIuivEXT(texture, (int)target, (int)pname, @params);
			LogCommand("glGetTextureParameterIuivEXT", null, texture, target, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetTextureParameterIuivEXT: Binding for glGetTextureParameterIuivEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetTextureParameterIuiEXT<T>(uint texture, TextureTarget target, GetTextureParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetTextureParameterIuivEXT != null, "pglGetTextureParameterIuivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetTextureParameterIuivEXT(texture, (int)target, (int)pname, (uint*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetTextureParameterIuivEXT(texture, (int)target, (int)pname, (uint*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetTextureParameterIuivEXT", null, texture, target, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexParameterIivEXT: Binding for glMultiTexParameterIivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexParameterIEXT(TextureUnit texunit, TextureTarget target, TextureParameterName pname, int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexParameterIivEXT != null, "pglMultiTexParameterIivEXT not implemented");
					Delegates.pglMultiTexParameterIivEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glMultiTexParameterIivEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexParameterIuivEXT: Binding for glMultiTexParameterIuivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:TextureParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexParameterIEXT(TextureUnit texunit, TextureTarget target, TextureParameterName pname, uint[] @params)
		{
			unsafe {
				fixed (uint* p_params = @params)
				{
					Debug.Assert(Delegates.pglMultiTexParameterIuivEXT != null, "pglMultiTexParameterIuivEXT not implemented");
					Delegates.pglMultiTexParameterIuivEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glMultiTexParameterIuivEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexParameterIivEXT: Binding for glGetMultiTexParameterIivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexParameterIEXT(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexParameterIivEXT != null, "pglGetMultiTexParameterIivEXT not implemented");
					Delegates.pglGetMultiTexParameterIivEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glGetMultiTexParameterIivEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetMultiTexParameterIuivEXT: Binding for glGetMultiTexParameterIuivEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetTextureParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetMultiTexParameterIEXT(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] uint[] @params)
		{
			unsafe {
				fixed (uint* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetMultiTexParameterIuivEXT != null, "pglGetMultiTexParameterIuivEXT not implemented");
					Delegates.pglGetMultiTexParameterIuivEXT((int)texunit, (int)target, (int)pname, p_params);
					LogCommand("glGetMultiTexParameterIuivEXT", null, texunit, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameters4fvEXT: Binding for glNamedProgramLocalParameters4fvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameters4EXT(uint program, int target, uint index, float[] @params)
		{
			Debug.Assert(@params.Length > 0 && (@params.Length % 4) == 0, "empty or not multiple of 4");
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglNamedProgramLocalParameters4fvEXT != null, "pglNamedProgramLocalParameters4fvEXT not implemented");
					Delegates.pglNamedProgramLocalParameters4fvEXT(program, target, index, @params.Length / 4, p_params);
					LogCommand("glNamedProgramLocalParameters4fvEXT", null, program, target, index, @params.Length / 4, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameterI4iEXT: Binding for glNamedProgramLocalParameterI4iEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameterI4EXT(uint program, int target, uint index, int x, int y, int z, int w)
		{
			Debug.Assert(Delegates.pglNamedProgramLocalParameterI4iEXT != null, "pglNamedProgramLocalParameterI4iEXT not implemented");
			Delegates.pglNamedProgramLocalParameterI4iEXT(program, target, index, x, y, z, w);
			LogCommand("glNamedProgramLocalParameterI4iEXT", null, program, target, index, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameterI4ivEXT: Binding for glNamedProgramLocalParameterI4ivEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameterI4EXT(uint program, int target, uint index, int[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglNamedProgramLocalParameterI4ivEXT != null, "pglNamedProgramLocalParameterI4ivEXT not implemented");
					Delegates.pglNamedProgramLocalParameterI4ivEXT(program, target, index, p_params);
					LogCommand("glNamedProgramLocalParameterI4ivEXT", null, program, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParametersI4ivEXT: Binding for glNamedProgramLocalParametersI4ivEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParametersI4EXT(uint program, int target, uint index, int[] @params)
		{
			Debug.Assert(@params.Length > 0 && (@params.Length % 4) == 0, "empty or not multiple of 4");
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglNamedProgramLocalParametersI4ivEXT != null, "pglNamedProgramLocalParametersI4ivEXT not implemented");
					Delegates.pglNamedProgramLocalParametersI4ivEXT(program, target, index, @params.Length / 4, p_params);
					LogCommand("glNamedProgramLocalParametersI4ivEXT", null, program, target, index, @params.Length / 4, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameterI4uiEXT: Binding for glNamedProgramLocalParameterI4uiEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameterI4uiEXT(uint program, int target, uint index, uint x, uint y, uint z, uint w)
		{
			Debug.Assert(Delegates.pglNamedProgramLocalParameterI4uiEXT != null, "pglNamedProgramLocalParameterI4uiEXT not implemented");
			Delegates.pglNamedProgramLocalParameterI4uiEXT(program, target, index, x, y, z, w);
			LogCommand("glNamedProgramLocalParameterI4uiEXT", null, program, target, index, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameterI4uivEXT: Binding for glNamedProgramLocalParameterI4uivEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameterI4uiEXT(uint program, int target, uint index, uint[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (uint* p_params = @params)
				{
					Debug.Assert(Delegates.pglNamedProgramLocalParameterI4uivEXT != null, "pglNamedProgramLocalParameterI4uivEXT not implemented");
					Delegates.pglNamedProgramLocalParameterI4uivEXT(program, target, index, p_params);
					LogCommand("glNamedProgramLocalParameterI4uivEXT", null, program, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParametersI4uivEXT: Binding for glNamedProgramLocalParametersI4uivEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParametersI4uiEXT(uint program, int target, uint index, uint[] @params)
		{
			Debug.Assert(@params.Length > 0 && (@params.Length % 4) == 0, "empty or not multiple of 4");
			unsafe {
				fixed (uint* p_params = @params)
				{
					Debug.Assert(Delegates.pglNamedProgramLocalParametersI4uivEXT != null, "pglNamedProgramLocalParametersI4uivEXT not implemented");
					Delegates.pglNamedProgramLocalParametersI4uivEXT(program, target, index, @params.Length / 4, p_params);
					LogCommand("glNamedProgramLocalParametersI4uivEXT", null, program, target, index, @params.Length / 4, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedProgramLocalParameterIivEXT: Binding for glGetNamedProgramLocalParameterIivEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedProgramLocalParameterIEXT(uint program, int target, uint index, [Out] int[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetNamedProgramLocalParameterIivEXT != null, "pglGetNamedProgramLocalParameterIivEXT not implemented");
					Delegates.pglGetNamedProgramLocalParameterIivEXT(program, target, index, p_params);
					LogCommand("glGetNamedProgramLocalParameterIivEXT", null, program, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedProgramLocalParameterIuivEXT: Binding for glGetNamedProgramLocalParameterIuivEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:uint[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedProgramLocalParameterIEXT(uint program, int target, uint index, [Out] uint[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (uint* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetNamedProgramLocalParameterIuivEXT != null, "pglGetNamedProgramLocalParameterIuivEXT not implemented");
					Delegates.pglGetNamedProgramLocalParameterIuivEXT(program, target, index, p_params);
					LogCommand("glGetNamedProgramLocalParameterIuivEXT", null, program, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glEnableClientStateiEXT: Binding for glEnableClientStateiEXT.
		/// </summary>
		/// <param name="array">
		/// A <see cref="T:EnableCap"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void EnableClientStateEXT(EnableCap array, uint index)
		{
			Debug.Assert(Delegates.pglEnableClientStateiEXT != null, "pglEnableClientStateiEXT not implemented");
			Delegates.pglEnableClientStateiEXT((int)array, index);
			LogCommand("glEnableClientStateiEXT", null, array, index			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glDisableClientStateiEXT: Binding for glDisableClientStateiEXT.
		/// </summary>
		/// <param name="array">
		/// A <see cref="T:EnableCap"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void DisableClientStateEXT(EnableCap array, uint index)
		{
			Debug.Assert(Delegates.pglDisableClientStateiEXT != null, "pglDisableClientStateiEXT not implemented");
			Delegates.pglDisableClientStateiEXT((int)array, index);
			LogCommand("glDisableClientStateiEXT", null, array, index			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetPointeri_vEXT: Binding for glGetPointeri_vEXT.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetPointerEXT(int pname, uint index, out IntPtr @params)
		{
			unsafe {
				fixed (IntPtr* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetPointeri_vEXT != null, "pglGetPointeri_vEXT not implemented");
					Delegates.pglGetPointeri_vEXT(pname, index, p_params);
					LogCommand("glGetPointeri_vEXT", null, pname, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetPointeri_vEXT: Binding for glGetPointeri_vEXT.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetPointerEXT(int pname, uint index, object @params)
		{
			GCHandle pin_params = GCHandle.Alloc(@params, GCHandleType.Pinned);
			try {
				GetPointerEXT(pname, index, pin_params.AddrOfPinnedObject());
			} finally {
				pin_params.Free();
			}
		}

		/// <summary>
		/// [GL] glNamedProgramStringEXT: Binding for glNamedProgramStringEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="len">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramStringEXT(uint program, int target, int format, int len, IntPtr @string)
		{
			Debug.Assert(Delegates.pglNamedProgramStringEXT != null, "pglNamedProgramStringEXT not implemented");
			Delegates.pglNamedProgramStringEXT(program, target, format, len, @string);
			LogCommand("glNamedProgramStringEXT", null, program, target, format, len, @string			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramStringEXT: Binding for glNamedProgramStringEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="len">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramStringEXT(uint program, int target, int format, int len, object @string)
		{
			GCHandle pin_string = GCHandle.Alloc(@string, GCHandleType.Pinned);
			try {
				NamedProgramStringEXT(program, target, format, len, pin_string.AddrOfPinnedObject());
			} finally {
				pin_string.Free();
			}
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameter4dEXT: Binding for glNamedProgramLocalParameter4dEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameter4EXT(uint program, int target, uint index, double x, double y, double z, double w)
		{
			Debug.Assert(Delegates.pglNamedProgramLocalParameter4dEXT != null, "pglNamedProgramLocalParameter4dEXT not implemented");
			Delegates.pglNamedProgramLocalParameter4dEXT(program, target, index, x, y, z, w);
			LogCommand("glNamedProgramLocalParameter4dEXT", null, program, target, index, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameter4dvEXT: Binding for glNamedProgramLocalParameter4dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameter4EXT(uint program, int target, uint index, double[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (double* p_params = @params)
				{
					Debug.Assert(Delegates.pglNamedProgramLocalParameter4dvEXT != null, "pglNamedProgramLocalParameter4dvEXT not implemented");
					Delegates.pglNamedProgramLocalParameter4dvEXT(program, target, index, p_params);
					LogCommand("glNamedProgramLocalParameter4dvEXT", null, program, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameter4fEXT: Binding for glNamedProgramLocalParameter4fEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:float"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:float"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameter4EXT(uint program, int target, uint index, float x, float y, float z, float w)
		{
			Debug.Assert(Delegates.pglNamedProgramLocalParameter4fEXT != null, "pglNamedProgramLocalParameter4fEXT not implemented");
			Delegates.pglNamedProgramLocalParameter4fEXT(program, target, index, x, y, z, w);
			LogCommand("glNamedProgramLocalParameter4fEXT", null, program, target, index, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedProgramLocalParameter4fvEXT: Binding for glNamedProgramLocalParameter4fvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedProgramLocalParameter4EXT(uint program, int target, uint index, float[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglNamedProgramLocalParameter4fvEXT != null, "pglNamedProgramLocalParameter4fvEXT not implemented");
					Delegates.pglNamedProgramLocalParameter4fvEXT(program, target, index, p_params);
					LogCommand("glNamedProgramLocalParameter4fvEXT", null, program, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedProgramLocalParameterdvEXT: Binding for glGetNamedProgramLocalParameterdvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedProgramLocalParameterEXT(uint program, int target, uint index, [Out] double[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (double* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetNamedProgramLocalParameterdvEXT != null, "pglGetNamedProgramLocalParameterdvEXT not implemented");
					Delegates.pglGetNamedProgramLocalParameterdvEXT(program, target, index, p_params);
					LogCommand("glGetNamedProgramLocalParameterdvEXT", null, program, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedProgramLocalParameterfvEXT: Binding for glGetNamedProgramLocalParameterfvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:float[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedProgramLocalParameterEXT(uint program, int target, uint index, [Out] float[] @params)
		{
			Debug.Assert(@params.Length >= 4);
			unsafe {
				fixed (float* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetNamedProgramLocalParameterfvEXT != null, "pglGetNamedProgramLocalParameterfvEXT not implemented");
					Delegates.pglGetNamedProgramLocalParameterfvEXT(program, target, index, p_params);
					LogCommand("glGetNamedProgramLocalParameterfvEXT", null, program, target, index, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedProgramivEXT: Binding for glGetNamedProgramivEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:ProgramProperty"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedProgramEXT(uint program, int target, ProgramProperty pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetNamedProgramivEXT != null, "pglGetNamedProgramivEXT not implemented");
					Delegates.pglGetNamedProgramivEXT(program, target, (int)pname, p_params);
					LogCommand("glGetNamedProgramivEXT", null, program, target, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedProgramStringEXT: Binding for glGetNamedProgramStringEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedProgramStringEXT(uint program, int target, int pname, IntPtr @string)
		{
			Debug.Assert(Delegates.pglGetNamedProgramStringEXT != null, "pglGetNamedProgramStringEXT not implemented");
			Delegates.pglGetNamedProgramStringEXT(program, target, pname, @string);
			LogCommand("glGetNamedProgramStringEXT", null, program, target, pname, @string			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedProgramStringEXT: Binding for glGetNamedProgramStringEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedProgramStringEXT(uint program, int target, int pname, object @string)
		{
			GCHandle pin_string = GCHandle.Alloc(@string, GCHandleType.Pinned);
			try {
				GetNamedProgramStringEXT(program, target, pname, pin_string.AddrOfPinnedObject());
			} finally {
				pin_string.Free();
			}
		}

		/// <summary>
		/// [GL] glNamedRenderbufferStorageEXT: Binding for glNamedRenderbufferStorageEXT.
		/// </summary>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedRenderbufferStorageEXT(uint renderbuffer, InternalFormat internalformat, int width, int height)
		{
			Debug.Assert(Delegates.pglNamedRenderbufferStorageEXT != null, "pglNamedRenderbufferStorageEXT not implemented");
			Delegates.pglNamedRenderbufferStorageEXT(renderbuffer, (int)internalformat, width, height);
			LogCommand("glNamedRenderbufferStorageEXT", null, renderbuffer, internalformat, width, height			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedRenderbufferParameterivEXT: Binding for glGetNamedRenderbufferParameterivEXT.
		/// </summary>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:RenderbufferParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedRenderbufferParameterEXT(uint renderbuffer, RenderbufferParameterName pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetNamedRenderbufferParameterivEXT != null, "pglGetNamedRenderbufferParameterivEXT not implemented");
					Delegates.pglGetNamedRenderbufferParameterivEXT(renderbuffer, (int)pname, p_params);
					LogCommand("glGetNamedRenderbufferParameterivEXT", null, renderbuffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedRenderbufferParameterivEXT: Binding for glGetNamedRenderbufferParameterivEXT.
		/// </summary>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:RenderbufferParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedRenderbufferParameterEXT(uint renderbuffer, RenderbufferParameterName pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetNamedRenderbufferParameterivEXT != null, "pglGetNamedRenderbufferParameterivEXT not implemented");
					Delegates.pglGetNamedRenderbufferParameterivEXT(renderbuffer, (int)pname, p_params);
					LogCommand("glGetNamedRenderbufferParameterivEXT", null, renderbuffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedRenderbufferParameterivEXT: Binding for glGetNamedRenderbufferParameterivEXT.
		/// </summary>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:RenderbufferParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetNamedRenderbufferParameterEXT(uint renderbuffer, RenderbufferParameterName pname, [Out] int* @params)
		{
			Debug.Assert(Delegates.pglGetNamedRenderbufferParameterivEXT != null, "pglGetNamedRenderbufferParameterivEXT not implemented");
			Delegates.pglGetNamedRenderbufferParameterivEXT(renderbuffer, (int)pname, @params);
			LogCommand("glGetNamedRenderbufferParameterivEXT", null, renderbuffer, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedRenderbufferParameterivEXT: Binding for glGetNamedRenderbufferParameterivEXT.
		/// </summary>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:RenderbufferParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedRenderbufferParameteriEXT<T>(uint renderbuffer, RenderbufferParameterName pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetNamedRenderbufferParameterivEXT != null, "pglGetNamedRenderbufferParameterivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetNamedRenderbufferParameterivEXT(renderbuffer, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetNamedRenderbufferParameterivEXT(renderbuffer, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetNamedRenderbufferParameterivEXT", null, renderbuffer, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedRenderbufferStorageMultisampleEXT: Binding for glNamedRenderbufferStorageMultisampleEXT.
		/// </summary>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="samples">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedRenderbufferStorageMultisampleEXT(uint renderbuffer, int samples, InternalFormat internalformat, int width, int height)
		{
			Debug.Assert(Delegates.pglNamedRenderbufferStorageMultisampleEXT != null, "pglNamedRenderbufferStorageMultisampleEXT not implemented");
			Delegates.pglNamedRenderbufferStorageMultisampleEXT(renderbuffer, samples, (int)internalformat, width, height);
			LogCommand("glNamedRenderbufferStorageMultisampleEXT", null, renderbuffer, samples, internalformat, width, height			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedRenderbufferStorageMultisampleCoverageEXT: Binding for glNamedRenderbufferStorageMultisampleCoverageEXT.
		/// </summary>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="coverageSamples">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="colorSamples">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedRenderbufferStorageMultisampleCoverageEXT(uint renderbuffer, int coverageSamples, int colorSamples, InternalFormat internalformat, int width, int height)
		{
			Debug.Assert(Delegates.pglNamedRenderbufferStorageMultisampleCoverageEXT != null, "pglNamedRenderbufferStorageMultisampleCoverageEXT not implemented");
			Delegates.pglNamedRenderbufferStorageMultisampleCoverageEXT(renderbuffer, coverageSamples, colorSamples, (int)internalformat, width, height);
			LogCommand("glNamedRenderbufferStorageMultisampleCoverageEXT", null, renderbuffer, coverageSamples, colorSamples, internalformat, width, height			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glCheckNamedFramebufferStatusEXT: Binding for glCheckNamedFramebufferStatusEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:FramebufferTarget"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static FramebufferStatus CheckNamedFramebufferStatusEXT(uint framebuffer, FramebufferTarget target)
		{
			int retValue;

			Debug.Assert(Delegates.pglCheckNamedFramebufferStatusEXT != null, "pglCheckNamedFramebufferStatusEXT not implemented");
			retValue = Delegates.pglCheckNamedFramebufferStatusEXT(framebuffer, (int)target);
			LogCommand("glCheckNamedFramebufferStatusEXT", (FramebufferStatus)retValue, framebuffer, target			);
			DebugCheckErrors(retValue);

			return ((FramebufferStatus)retValue);
		}

		/// <summary>
		/// [GL] glNamedFramebufferTexture1DEXT: Binding for glNamedFramebufferTexture1DEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="textarget">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedFramebufferTexture1DEXT(uint framebuffer, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level)
		{
			Debug.Assert(Delegates.pglNamedFramebufferTexture1DEXT != null, "pglNamedFramebufferTexture1DEXT not implemented");
			Delegates.pglNamedFramebufferTexture1DEXT(framebuffer, (int)attachment, (int)textarget, texture, level);
			LogCommand("glNamedFramebufferTexture1DEXT", null, framebuffer, attachment, textarget, texture, level			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedFramebufferTexture2DEXT: Binding for glNamedFramebufferTexture2DEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="textarget">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedFramebufferTexture2DEXT(uint framebuffer, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level)
		{
			Debug.Assert(Delegates.pglNamedFramebufferTexture2DEXT != null, "pglNamedFramebufferTexture2DEXT not implemented");
			Delegates.pglNamedFramebufferTexture2DEXT(framebuffer, (int)attachment, (int)textarget, texture, level);
			LogCommand("glNamedFramebufferTexture2DEXT", null, framebuffer, attachment, textarget, texture, level			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedFramebufferTexture3DEXT: Binding for glNamedFramebufferTexture3DEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="textarget">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedFramebufferTexture3DEXT(uint framebuffer, FramebufferAttachment attachment, TextureTarget textarget, uint texture, int level, int zoffset)
		{
			Debug.Assert(Delegates.pglNamedFramebufferTexture3DEXT != null, "pglNamedFramebufferTexture3DEXT not implemented");
			Delegates.pglNamedFramebufferTexture3DEXT(framebuffer, (int)attachment, (int)textarget, texture, level, zoffset);
			LogCommand("glNamedFramebufferTexture3DEXT", null, framebuffer, attachment, textarget, texture, level, zoffset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedFramebufferRenderbufferEXT: Binding for glNamedFramebufferRenderbufferEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="renderbuffertarget">
		/// A <see cref="T:RenderbufferTarget"/>.
		/// </param>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedFramebufferRenderbufferEXT(uint framebuffer, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, uint renderbuffer)
		{
			Debug.Assert(Delegates.pglNamedFramebufferRenderbufferEXT != null, "pglNamedFramebufferRenderbufferEXT not implemented");
			Delegates.pglNamedFramebufferRenderbufferEXT(framebuffer, (int)attachment, (int)renderbuffertarget, renderbuffer);
			LogCommand("glNamedFramebufferRenderbufferEXT", null, framebuffer, attachment, renderbuffertarget, renderbuffer			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedFramebufferAttachmentParameterivEXT: Binding for glGetNamedFramebufferAttachmentParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:FramebufferAttachmentParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedFramebufferAttachmentParameterEXT(uint framebuffer, FramebufferAttachment attachment, FramebufferAttachmentParameterName pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetNamedFramebufferAttachmentParameterivEXT != null, "pglGetNamedFramebufferAttachmentParameterivEXT not implemented");
					Delegates.pglGetNamedFramebufferAttachmentParameterivEXT(framebuffer, (int)attachment, (int)pname, p_params);
					LogCommand("glGetNamedFramebufferAttachmentParameterivEXT", null, framebuffer, attachment, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedFramebufferAttachmentParameterivEXT: Binding for glGetNamedFramebufferAttachmentParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:FramebufferAttachmentParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedFramebufferAttachmentParameterEXT(uint framebuffer, FramebufferAttachment attachment, FramebufferAttachmentParameterName pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetNamedFramebufferAttachmentParameterivEXT != null, "pglGetNamedFramebufferAttachmentParameterivEXT not implemented");
					Delegates.pglGetNamedFramebufferAttachmentParameterivEXT(framebuffer, (int)attachment, (int)pname, p_params);
					LogCommand("glGetNamedFramebufferAttachmentParameterivEXT", null, framebuffer, attachment, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedFramebufferAttachmentParameterivEXT: Binding for glGetNamedFramebufferAttachmentParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:FramebufferAttachmentParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetNamedFramebufferAttachmentParameterEXT(uint framebuffer, FramebufferAttachment attachment, FramebufferAttachmentParameterName pname, [Out] int* @params)
		{
			Debug.Assert(Delegates.pglGetNamedFramebufferAttachmentParameterivEXT != null, "pglGetNamedFramebufferAttachmentParameterivEXT not implemented");
			Delegates.pglGetNamedFramebufferAttachmentParameterivEXT(framebuffer, (int)attachment, (int)pname, @params);
			LogCommand("glGetNamedFramebufferAttachmentParameterivEXT", null, framebuffer, attachment, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedFramebufferAttachmentParameterivEXT: Binding for glGetNamedFramebufferAttachmentParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:FramebufferAttachmentParameterName"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedFramebufferAttachmentParameteriEXT<T>(uint framebuffer, FramebufferAttachment attachment, FramebufferAttachmentParameterName pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetNamedFramebufferAttachmentParameterivEXT != null, "pglGetNamedFramebufferAttachmentParameterivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetNamedFramebufferAttachmentParameterivEXT(framebuffer, (int)attachment, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetNamedFramebufferAttachmentParameterivEXT(framebuffer, (int)attachment, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetNamedFramebufferAttachmentParameterivEXT", null, framebuffer, attachment, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGenerateTextureMipmapEXT: Binding for glGenerateTextureMipmapEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GenerateTextureMipmapEXT(uint texture, TextureTarget target)
		{
			Debug.Assert(Delegates.pglGenerateTextureMipmapEXT != null, "pglGenerateTextureMipmapEXT not implemented");
			Delegates.pglGenerateTextureMipmapEXT(texture, (int)target);
			LogCommand("glGenerateTextureMipmapEXT", null, texture, target			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGenerateMultiTexMipmapEXT: Binding for glGenerateMultiTexMipmapEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GenerateMultiTexMipmapEXT(TextureUnit texunit, TextureTarget target)
		{
			Debug.Assert(Delegates.pglGenerateMultiTexMipmapEXT != null, "pglGenerateMultiTexMipmapEXT not implemented");
			Delegates.pglGenerateMultiTexMipmapEXT((int)texunit, (int)target);
			LogCommand("glGenerateMultiTexMipmapEXT", null, texunit, target			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glFramebufferDrawBufferEXT: Binding for glFramebufferDrawBufferEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="mode">
		/// A <see cref="T:DrawBufferMode"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void FramebufferDrawBufferEXT(uint framebuffer, DrawBufferMode mode)
		{
			Debug.Assert(Delegates.pglFramebufferDrawBufferEXT != null, "pglFramebufferDrawBufferEXT not implemented");
			Delegates.pglFramebufferDrawBufferEXT(framebuffer, (int)mode);
			LogCommand("glFramebufferDrawBufferEXT", null, framebuffer, mode			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glFramebufferDrawBuffersEXT: Binding for glFramebufferDrawBuffersEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="bufs">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void FramebufferDrawBuffersEXT(uint framebuffer, int[] bufs)
		{
			unsafe {
				fixed (int* p_bufs = bufs)
				{
					Debug.Assert(Delegates.pglFramebufferDrawBuffersEXT != null, "pglFramebufferDrawBuffersEXT not implemented");
					Delegates.pglFramebufferDrawBuffersEXT(framebuffer, bufs.Length, p_bufs);
					LogCommand("glFramebufferDrawBuffersEXT", null, framebuffer, bufs.Length, bufs					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glFramebufferReadBufferEXT: Binding for glFramebufferReadBufferEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="mode">
		/// A <see cref="T:ReadBufferMode"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void FramebufferReadBufferEXT(uint framebuffer, ReadBufferMode mode)
		{
			Debug.Assert(Delegates.pglFramebufferReadBufferEXT != null, "pglFramebufferReadBufferEXT not implemented");
			Delegates.pglFramebufferReadBufferEXT(framebuffer, (int)mode);
			LogCommand("glFramebufferReadBufferEXT", null, framebuffer, mode			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetFramebufferParameterivEXT: Binding for glGetFramebufferParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetFramebufferParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetFramebufferParameterEXT(uint framebuffer, GetFramebufferParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetFramebufferParameterivEXT != null, "pglGetFramebufferParameterivEXT not implemented");
					Delegates.pglGetFramebufferParameterivEXT(framebuffer, (int)pname, p_params);
					LogCommand("glGetFramebufferParameterivEXT", null, framebuffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetFramebufferParameterivEXT: Binding for glGetFramebufferParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetFramebufferParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetFramebufferParameterEXT(uint framebuffer, GetFramebufferParameter pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetFramebufferParameterivEXT != null, "pglGetFramebufferParameterivEXT not implemented");
					Delegates.pglGetFramebufferParameterivEXT(framebuffer, (int)pname, p_params);
					LogCommand("glGetFramebufferParameterivEXT", null, framebuffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetFramebufferParameterivEXT: Binding for glGetFramebufferParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetFramebufferParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetFramebufferParameterEXT(uint framebuffer, GetFramebufferParameter pname, [Out] int* @params)
		{
			Debug.Assert(Delegates.pglGetFramebufferParameterivEXT != null, "pglGetFramebufferParameterivEXT not implemented");
			Delegates.pglGetFramebufferParameterivEXT(framebuffer, (int)pname, @params);
			LogCommand("glGetFramebufferParameterivEXT", null, framebuffer, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetFramebufferParameterivEXT: Binding for glGetFramebufferParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetFramebufferParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetFramebufferParameteriEXT<T>(uint framebuffer, GetFramebufferParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetFramebufferParameterivEXT != null, "pglGetFramebufferParameterivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetFramebufferParameterivEXT(framebuffer, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetFramebufferParameterivEXT(framebuffer, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetFramebufferParameterivEXT", null, framebuffer, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedCopyBufferSubDataEXT: Binding for glNamedCopyBufferSubDataEXT.
		/// </summary>
		/// <param name="readBuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="writeBuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="readOffset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="writeOffset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedCopyBufferSubDataEXT(uint readBuffer, uint writeBuffer, IntPtr readOffset, IntPtr writeOffset, uint size)
		{
			Debug.Assert(Delegates.pglNamedCopyBufferSubDataEXT != null, "pglNamedCopyBufferSubDataEXT not implemented");
			Delegates.pglNamedCopyBufferSubDataEXT(readBuffer, writeBuffer, readOffset, writeOffset, size);
			LogCommand("glNamedCopyBufferSubDataEXT", null, readBuffer, writeBuffer, readOffset, writeOffset, size			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedFramebufferTextureEXT: Binding for glNamedFramebufferTextureEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedFramebufferTextureEXT(uint framebuffer, FramebufferAttachment attachment, uint texture, int level)
		{
			Debug.Assert(Delegates.pglNamedFramebufferTextureEXT != null, "pglNamedFramebufferTextureEXT not implemented");
			Delegates.pglNamedFramebufferTextureEXT(framebuffer, (int)attachment, texture, level);
			LogCommand("glNamedFramebufferTextureEXT", null, framebuffer, attachment, texture, level			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedFramebufferTextureLayerEXT: Binding for glNamedFramebufferTextureLayerEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="layer">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedFramebufferTextureLayerEXT(uint framebuffer, FramebufferAttachment attachment, uint texture, int level, int layer)
		{
			Debug.Assert(Delegates.pglNamedFramebufferTextureLayerEXT != null, "pglNamedFramebufferTextureLayerEXT not implemented");
			Delegates.pglNamedFramebufferTextureLayerEXT(framebuffer, (int)attachment, texture, level, layer);
			LogCommand("glNamedFramebufferTextureLayerEXT", null, framebuffer, attachment, texture, level, layer			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glNamedFramebufferTextureFaceEXT: Binding for glNamedFramebufferTextureFaceEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attachment">
		/// A <see cref="T:FramebufferAttachment"/>.
		/// </param>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="face">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedFramebufferTextureFaceEXT(uint framebuffer, FramebufferAttachment attachment, uint texture, int level, TextureTarget face)
		{
			Debug.Assert(Delegates.pglNamedFramebufferTextureFaceEXT != null, "pglNamedFramebufferTextureFaceEXT not implemented");
			Delegates.pglNamedFramebufferTextureFaceEXT(framebuffer, (int)attachment, texture, level, (int)face);
			LogCommand("glNamedFramebufferTextureFaceEXT", null, framebuffer, attachment, texture, level, face			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureRenderbufferEXT: Binding for glTextureRenderbufferEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureRenderbufferEXT(uint texture, TextureTarget target, uint renderbuffer)
		{
			Debug.Assert(Delegates.pglTextureRenderbufferEXT != null, "pglTextureRenderbufferEXT not implemented");
			Delegates.pglTextureRenderbufferEXT(texture, (int)target, renderbuffer);
			LogCommand("glTextureRenderbufferEXT", null, texture, target, renderbuffer			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMultiTexRenderbufferEXT: Binding for glMultiTexRenderbufferEXT.
		/// </summary>
		/// <param name="texunit">
		/// A <see cref="T:TextureUnit"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="renderbuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void MultiTexRenderbufferEXT(TextureUnit texunit, TextureTarget target, uint renderbuffer)
		{
			Debug.Assert(Delegates.pglMultiTexRenderbufferEXT != null, "pglMultiTexRenderbufferEXT not implemented");
			Delegates.pglMultiTexRenderbufferEXT((int)texunit, (int)target, renderbuffer);
			LogCommand("glMultiTexRenderbufferEXT", null, texunit, target, renderbuffer			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexOffsetEXT: Binding for glVertexArrayVertexOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:VertexPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexOffsetEXT(uint vaobj, uint buffer, int size, VertexPointerType type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexOffsetEXT != null, "pglVertexArrayVertexOffsetEXT not implemented");
			Delegates.pglVertexArrayVertexOffsetEXT(vaobj, buffer, size, (int)type, stride, offset);
			LogCommand("glVertexArrayVertexOffsetEXT", null, vaobj, buffer, size, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayColorOffsetEXT: Binding for glVertexArrayColorOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:ColorPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayColorOffsetEXT(uint vaobj, uint buffer, int size, ColorPointerType type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayColorOffsetEXT != null, "pglVertexArrayColorOffsetEXT not implemented");
			Delegates.pglVertexArrayColorOffsetEXT(vaobj, buffer, size, (int)type, stride, offset);
			LogCommand("glVertexArrayColorOffsetEXT", null, vaobj, buffer, size, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayEdgeFlagOffsetEXT: Binding for glVertexArrayEdgeFlagOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayEdgeFlagOffsetEXT(uint vaobj, uint buffer, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayEdgeFlagOffsetEXT != null, "pglVertexArrayEdgeFlagOffsetEXT not implemented");
			Delegates.pglVertexArrayEdgeFlagOffsetEXT(vaobj, buffer, stride, offset);
			LogCommand("glVertexArrayEdgeFlagOffsetEXT", null, vaobj, buffer, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayIndexOffsetEXT: Binding for glVertexArrayIndexOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:IndexPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayIndexOffsetEXT(uint vaobj, uint buffer, IndexPointerType type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayIndexOffsetEXT != null, "pglVertexArrayIndexOffsetEXT not implemented");
			Delegates.pglVertexArrayIndexOffsetEXT(vaobj, buffer, (int)type, stride, offset);
			LogCommand("glVertexArrayIndexOffsetEXT", null, vaobj, buffer, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayNormalOffsetEXT: Binding for glVertexArrayNormalOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:NormalPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayNormalOffsetEXT(uint vaobj, uint buffer, NormalPointerType type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayNormalOffsetEXT != null, "pglVertexArrayNormalOffsetEXT not implemented");
			Delegates.pglVertexArrayNormalOffsetEXT(vaobj, buffer, (int)type, stride, offset);
			LogCommand("glVertexArrayNormalOffsetEXT", null, vaobj, buffer, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayTexCoordOffsetEXT: Binding for glVertexArrayTexCoordOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:TexCoordPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayTexCoordOffsetEXT(uint vaobj, uint buffer, int size, TexCoordPointerType type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayTexCoordOffsetEXT != null, "pglVertexArrayTexCoordOffsetEXT not implemented");
			Delegates.pglVertexArrayTexCoordOffsetEXT(vaobj, buffer, size, (int)type, stride, offset);
			LogCommand("glVertexArrayTexCoordOffsetEXT", null, vaobj, buffer, size, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayMultiTexCoordOffsetEXT: Binding for glVertexArrayMultiTexCoordOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="texunit">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:TexCoordPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayMultiTexCoordOffsetEXT(uint vaobj, uint buffer, int texunit, int size, TexCoordPointerType type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayMultiTexCoordOffsetEXT != null, "pglVertexArrayMultiTexCoordOffsetEXT not implemented");
			Delegates.pglVertexArrayMultiTexCoordOffsetEXT(vaobj, buffer, texunit, size, (int)type, stride, offset);
			LogCommand("glVertexArrayMultiTexCoordOffsetEXT", null, vaobj, buffer, texunit, size, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayFogCoordOffsetEXT: Binding for glVertexArrayFogCoordOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:FogCoordinatePointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayFogCoordOffsetEXT(uint vaobj, uint buffer, FogCoordinatePointerType type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayFogCoordOffsetEXT != null, "pglVertexArrayFogCoordOffsetEXT not implemented");
			Delegates.pglVertexArrayFogCoordOffsetEXT(vaobj, buffer, (int)type, stride, offset);
			LogCommand("glVertexArrayFogCoordOffsetEXT", null, vaobj, buffer, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArraySecondaryColorOffsetEXT: Binding for glVertexArraySecondaryColorOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:ColorPointerType"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArraySecondaryColorOffsetEXT(uint vaobj, uint buffer, int size, ColorPointerType type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArraySecondaryColorOffsetEXT != null, "pglVertexArraySecondaryColorOffsetEXT not implemented");
			Delegates.pglVertexArraySecondaryColorOffsetEXT(vaobj, buffer, size, (int)type, stride, offset);
			LogCommand("glVertexArraySecondaryColorOffsetEXT", null, vaobj, buffer, size, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexAttribOffsetEXT: Binding for glVertexArrayVertexAttribOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:VertexAttribType"/>.
		/// </param>
		/// <param name="normalized">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexAttribOffsetEXT(uint vaobj, uint buffer, uint index, int size, VertexAttribType type, bool normalized, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexAttribOffsetEXT != null, "pglVertexArrayVertexAttribOffsetEXT not implemented");
			Delegates.pglVertexArrayVertexAttribOffsetEXT(vaobj, buffer, index, size, (int)type, normalized, stride, offset);
			LogCommand("glVertexArrayVertexAttribOffsetEXT", null, vaobj, buffer, index, size, type, normalized, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexAttribIOffsetEXT: Binding for glVertexArrayVertexAttribIOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:VertexAttribEnum"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexAttribIOffsetEXT(uint vaobj, uint buffer, uint index, int size, VertexAttribEnum type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexAttribIOffsetEXT != null, "pglVertexArrayVertexAttribIOffsetEXT not implemented");
			Delegates.pglVertexArrayVertexAttribIOffsetEXT(vaobj, buffer, index, size, (int)type, stride, offset);
			LogCommand("glVertexArrayVertexAttribIOffsetEXT", null, vaobj, buffer, index, size, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glEnableVertexArrayEXT: Binding for glEnableVertexArrayEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="array">
		/// A <see cref="T:EnableCap"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void EnableVertexArrayEXT(uint vaobj, EnableCap array)
		{
			Debug.Assert(Delegates.pglEnableVertexArrayEXT != null, "pglEnableVertexArrayEXT not implemented");
			Delegates.pglEnableVertexArrayEXT(vaobj, (int)array);
			LogCommand("glEnableVertexArrayEXT", null, vaobj, array			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glDisableVertexArrayEXT: Binding for glDisableVertexArrayEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="array">
		/// A <see cref="T:EnableCap"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void DisableVertexArrayEXT(uint vaobj, EnableCap array)
		{
			Debug.Assert(Delegates.pglDisableVertexArrayEXT != null, "pglDisableVertexArrayEXT not implemented");
			Delegates.pglDisableVertexArrayEXT(vaobj, (int)array);
			LogCommand("glDisableVertexArrayEXT", null, vaobj, array			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glEnableVertexArrayAttribEXT: Binding for glEnableVertexArrayAttribEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void EnableVertexArrayAttribEXT(uint vaobj, uint index)
		{
			Debug.Assert(Delegates.pglEnableVertexArrayAttribEXT != null, "pglEnableVertexArrayAttribEXT not implemented");
			Delegates.pglEnableVertexArrayAttribEXT(vaobj, index);
			LogCommand("glEnableVertexArrayAttribEXT", null, vaobj, index			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glDisableVertexArrayAttribEXT: Binding for glDisableVertexArrayAttribEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void DisableVertexArrayAttribEXT(uint vaobj, uint index)
		{
			Debug.Assert(Delegates.pglDisableVertexArrayAttribEXT != null, "pglDisableVertexArrayAttribEXT not implemented");
			Delegates.pglDisableVertexArrayAttribEXT(vaobj, index);
			LogCommand("glDisableVertexArrayAttribEXT", null, vaobj, index			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetVertexArrayIntegervEXT: Binding for glGetVertexArrayIntegervEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexArrayPName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetVertexArrayIntegerEXT(uint vaobj, VertexArrayPName pname, [Out] int[] param)
		{
			unsafe {
				fixed (int* p_param = param)
				{
					Debug.Assert(Delegates.pglGetVertexArrayIntegervEXT != null, "pglGetVertexArrayIntegervEXT not implemented");
					Delegates.pglGetVertexArrayIntegervEXT(vaobj, (int)pname, p_param);
					LogCommand("glGetVertexArrayIntegervEXT", null, vaobj, pname, param					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetVertexArrayPointervEXT: Binding for glGetVertexArrayPointervEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexArrayPName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetVertexArrayPointerEXT(uint vaobj, VertexArrayPName pname, out IntPtr param)
		{
			unsafe {
				fixed (IntPtr* p_param = &param)
				{
					Debug.Assert(Delegates.pglGetVertexArrayPointervEXT != null, "pglGetVertexArrayPointervEXT not implemented");
					Delegates.pglGetVertexArrayPointervEXT(vaobj, (int)pname, p_param);
					LogCommand("glGetVertexArrayPointervEXT", null, vaobj, pname, param					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetVertexArrayPointervEXT: Binding for glGetVertexArrayPointervEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexArrayPName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetVertexArrayPointerEXT(uint vaobj, VertexArrayPName pname, object param)
		{
			GCHandle pin_param = GCHandle.Alloc(param, GCHandleType.Pinned);
			try {
				GetVertexArrayPointerEXT(vaobj, pname, pin_param.AddrOfPinnedObject());
			} finally {
				pin_param.Free();
			}
		}

		/// <summary>
		/// [GL] glGetVertexArrayIntegeri_vEXT: Binding for glGetVertexArrayIntegeri_vEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexArrayPName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetVertexArrayIntegerEXT(uint vaobj, uint index, VertexArrayPName pname, [Out] int[] param)
		{
			unsafe {
				fixed (int* p_param = param)
				{
					Debug.Assert(Delegates.pglGetVertexArrayIntegeri_vEXT != null, "pglGetVertexArrayIntegeri_vEXT not implemented");
					Delegates.pglGetVertexArrayIntegeri_vEXT(vaobj, index, (int)pname, p_param);
					LogCommand("glGetVertexArrayIntegeri_vEXT", null, vaobj, index, pname, param					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetVertexArrayPointeri_vEXT: Binding for glGetVertexArrayPointeri_vEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:VertexArrayPName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:IntPtr[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetVertexArrayPointerEXT(uint vaobj, uint index, VertexArrayPName pname, [Out] IntPtr[] param)
		{
			unsafe {
				fixed (IntPtr* p_param = param)
				{
					Debug.Assert(Delegates.pglGetVertexArrayPointeri_vEXT != null, "pglGetVertexArrayPointeri_vEXT not implemented");
					Delegates.pglGetVertexArrayPointeri_vEXT(vaobj, index, (int)pname, p_param);
					LogCommand("glGetVertexArrayPointeri_vEXT", null, vaobj, index, pname, param					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glMapNamedBufferRangeEXT: Binding for glMapNamedBufferRangeEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="length">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="access">
		/// A <see cref="T:BufferAccessMask"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static IntPtr MapNamedBufferRangeEXT(uint buffer, IntPtr offset, uint length, BufferAccessMask access)
		{
			IntPtr retValue;

			Debug.Assert(Delegates.pglMapNamedBufferRangeEXT != null, "pglMapNamedBufferRangeEXT not implemented");
			retValue = Delegates.pglMapNamedBufferRangeEXT(buffer, offset, length, (uint)access);
			LogCommand("glMapNamedBufferRangeEXT", retValue, buffer, offset, length, access			);
			DebugCheckErrors(retValue);

			return (retValue);
		}

		/// <summary>
		/// [GL] glFlushMappedNamedBufferRangeEXT: Binding for glFlushMappedNamedBufferRangeEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="length">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void FlushMappedNamedBufferRangeEXT(uint buffer, IntPtr offset, uint length)
		{
			Debug.Assert(Delegates.pglFlushMappedNamedBufferRangeEXT != null, "pglFlushMappedNamedBufferRangeEXT not implemented");
			Delegates.pglFlushMappedNamedBufferRangeEXT(buffer, offset, length);
			LogCommand("glFlushMappedNamedBufferRangeEXT", null, buffer, offset, length			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glClearNamedBufferDataEXT: Binding for glClearNamedBufferDataEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ClearNamedBufferDataEXT(uint buffer, InternalFormat internalformat, PixelFormat format, PixelType type, IntPtr data)
		{
			Debug.Assert(Delegates.pglClearNamedBufferDataEXT != null, "pglClearNamedBufferDataEXT not implemented");
			Delegates.pglClearNamedBufferDataEXT(buffer, (int)internalformat, (int)format, (int)type, data);
			LogCommand("glClearNamedBufferDataEXT", null, buffer, internalformat, format, type, data			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glClearNamedBufferDataEXT: Binding for glClearNamedBufferDataEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ClearNamedBufferDataEXT(uint buffer, InternalFormat internalformat, PixelFormat format, PixelType type, object data)
		{
			GCHandle pin_data = GCHandle.Alloc(data, GCHandleType.Pinned);
			try {
				ClearNamedBufferDataEXT(buffer, internalformat, format, type, pin_data.AddrOfPinnedObject());
			} finally {
				pin_data.Free();
			}
		}

		/// <summary>
		/// [GL] glClearNamedBufferSubDataEXT: Binding for glClearNamedBufferSubDataEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ClearNamedBufferSubDataEXT(uint buffer, InternalFormat internalformat, uint offset, uint size, PixelFormat format, PixelType type, IntPtr data)
		{
			Debug.Assert(Delegates.pglClearNamedBufferSubDataEXT != null, "pglClearNamedBufferSubDataEXT not implemented");
			Delegates.pglClearNamedBufferSubDataEXT(buffer, (int)internalformat, offset, size, (int)format, (int)type, data);
			LogCommand("glClearNamedBufferSubDataEXT", null, buffer, internalformat, offset, size, format, type, data			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glClearNamedBufferSubDataEXT: Binding for glClearNamedBufferSubDataEXT.
		/// </summary>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:PixelFormat"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:PixelType"/>.
		/// </param>
		/// <param name="data">
		/// A <see cref="T:object"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ClearNamedBufferSubDataEXT(uint buffer, InternalFormat internalformat, uint offset, uint size, PixelFormat format, PixelType type, object data)
		{
			GCHandle pin_data = GCHandle.Alloc(data, GCHandleType.Pinned);
			try {
				ClearNamedBufferSubDataEXT(buffer, internalformat, offset, size, format, type, pin_data.AddrOfPinnedObject());
			} finally {
				pin_data.Free();
			}
		}

		/// <summary>
		/// [GL] glNamedFramebufferParameteriEXT: Binding for glNamedFramebufferParameteriEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:FramebufferParameterName"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void NamedFramebufferParameterEXT(uint framebuffer, FramebufferParameterName pname, int param)
		{
			Debug.Assert(Delegates.pglNamedFramebufferParameteriEXT != null, "pglNamedFramebufferParameteriEXT not implemented");
			Delegates.pglNamedFramebufferParameteriEXT(framebuffer, (int)pname, param);
			LogCommand("glNamedFramebufferParameteriEXT", null, framebuffer, pname, param			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedFramebufferParameterivEXT: Binding for glGetNamedFramebufferParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetFramebufferParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedFramebufferParameterEXT(uint framebuffer, GetFramebufferParameter pname, [Out] int[] @params)
		{
			unsafe {
				fixed (int* p_params = @params)
				{
					Debug.Assert(Delegates.pglGetNamedFramebufferParameterivEXT != null, "pglGetNamedFramebufferParameterivEXT not implemented");
					Delegates.pglGetNamedFramebufferParameterivEXT(framebuffer, (int)pname, p_params);
					LogCommand("glGetNamedFramebufferParameterivEXT", null, framebuffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedFramebufferParameterivEXT: Binding for glGetNamedFramebufferParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetFramebufferParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedFramebufferParameterEXT(uint framebuffer, GetFramebufferParameter pname, out int @params)
		{
			unsafe {
				fixed (int* p_params = &@params)
				{
					Debug.Assert(Delegates.pglGetNamedFramebufferParameterivEXT != null, "pglGetNamedFramebufferParameterivEXT not implemented");
					Delegates.pglGetNamedFramebufferParameterivEXT(framebuffer, (int)pname, p_params);
					LogCommand("glGetNamedFramebufferParameterivEXT", null, framebuffer, pname, @params					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedFramebufferParameterivEXT: Binding for glGetNamedFramebufferParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetFramebufferParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:int*"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static unsafe void GetNamedFramebufferParameterEXT(uint framebuffer, GetFramebufferParameter pname, [Out] int* @params)
		{
			Debug.Assert(Delegates.pglGetNamedFramebufferParameterivEXT != null, "pglGetNamedFramebufferParameterivEXT not implemented");
			Delegates.pglGetNamedFramebufferParameterivEXT(framebuffer, (int)pname, @params);
			LogCommand("glGetNamedFramebufferParameterivEXT", null, framebuffer, pname, new IntPtr(@params).ToString("X8")			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glGetNamedFramebufferParameterivEXT: Binding for glGetNamedFramebufferParameterivEXT.
		/// </summary>
		/// <param name="framebuffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:GetFramebufferParameter"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:T"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void GetNamedFramebufferParameteriEXT<T>(uint framebuffer, GetFramebufferParameter pname, out T @params) where T : struct
		{
			Debug.Assert(Delegates.pglGetNamedFramebufferParameterivEXT != null, "pglGetNamedFramebufferParameterivEXT not implemented");
			@params = default(T);
			#if NETCOREAPP1_1
			GCHandle valueHandle = GCHandle.Alloc(@params);
			try {
				unsafe {
					Delegates.pglGetNamedFramebufferParameterivEXT(framebuffer, (int)pname, (int*)valueHandle.AddrOfPinnedObject().ToPointer());
				}
			} finally {
				valueHandle.Free();
			}
			#else
			unsafe {
				TypedReference refParams = __makeref(@params);
				IntPtr refParamsPtr = *(IntPtr*)(&refParams);

				Delegates.pglGetNamedFramebufferParameterivEXT(framebuffer, (int)pname, (int*)refParamsPtr.ToPointer());
			}
			#endif
			LogCommand("glGetNamedFramebufferParameterivEXT", null, framebuffer, pname, @params			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniform1dEXT: Binding for glProgramUniform1dEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniform1EXT(uint program, int location, double x)
		{
			Debug.Assert(Delegates.pglProgramUniform1dEXT != null, "pglProgramUniform1dEXT not implemented");
			Delegates.pglProgramUniform1dEXT(program, location, x);
			LogCommand("glProgramUniform1dEXT", null, program, location, x			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniform2dEXT: Binding for glProgramUniform2dEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniform2EXT(uint program, int location, double x, double y)
		{
			Debug.Assert(Delegates.pglProgramUniform2dEXT != null, "pglProgramUniform2dEXT not implemented");
			Delegates.pglProgramUniform2dEXT(program, location, x, y);
			LogCommand("glProgramUniform2dEXT", null, program, location, x, y			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniform3dEXT: Binding for glProgramUniform3dEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniform3EXT(uint program, int location, double x, double y, double z)
		{
			Debug.Assert(Delegates.pglProgramUniform3dEXT != null, "pglProgramUniform3dEXT not implemented");
			Delegates.pglProgramUniform3dEXT(program, location, x, y, z);
			LogCommand("glProgramUniform3dEXT", null, program, location, x, y, z			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniform4dEXT: Binding for glProgramUniform4dEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:double"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:double"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniform4EXT(uint program, int location, double x, double y, double z, double w)
		{
			Debug.Assert(Delegates.pglProgramUniform4dEXT != null, "pglProgramUniform4dEXT not implemented");
			Delegates.pglProgramUniform4dEXT(program, location, x, y, z, w);
			LogCommand("glProgramUniform4dEXT", null, program, location, x, y, z, w			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniform1dvEXT: Binding for glProgramUniform1dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniform1EXT(uint program, int location, double[] value)
		{
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniform1dvEXT != null, "pglProgramUniform1dvEXT not implemented");
					Delegates.pglProgramUniform1dvEXT(program, location, value.Length, p_value);
					LogCommand("glProgramUniform1dvEXT", null, program, location, value.Length, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniform2dvEXT: Binding for glProgramUniform2dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniform2EXT(uint program, int location, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 2) == 0, "empty or not multiple of 2");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniform2dvEXT != null, "pglProgramUniform2dvEXT not implemented");
					Delegates.pglProgramUniform2dvEXT(program, location, value.Length / 2, p_value);
					LogCommand("glProgramUniform2dvEXT", null, program, location, value.Length / 2, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniform3dvEXT: Binding for glProgramUniform3dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniform3EXT(uint program, int location, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 3) == 0, "empty or not multiple of 3");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniform3dvEXT != null, "pglProgramUniform3dvEXT not implemented");
					Delegates.pglProgramUniform3dvEXT(program, location, value.Length / 3, p_value);
					LogCommand("glProgramUniform3dvEXT", null, program, location, value.Length / 3, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniform4dvEXT: Binding for glProgramUniform4dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniform4EXT(uint program, int location, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 4) == 0, "empty or not multiple of 4");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniform4dvEXT != null, "pglProgramUniform4dvEXT not implemented");
					Delegates.pglProgramUniform4dvEXT(program, location, value.Length / 4, p_value);
					LogCommand("glProgramUniform4dvEXT", null, program, location, value.Length / 4, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix2dvEXT: Binding for glProgramUniformMatrix2dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix2EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 4) == 0, "empty or not multiple of 4");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix2dvEXT != null, "pglProgramUniformMatrix2dvEXT not implemented");
					Delegates.pglProgramUniformMatrix2dvEXT(program, location, value.Length / 4, transpose, p_value);
					LogCommand("glProgramUniformMatrix2dvEXT", null, program, location, value.Length / 4, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix3dvEXT: Binding for glProgramUniformMatrix3dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix3EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 9) == 0, "empty or not multiple of 9");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix3dvEXT != null, "pglProgramUniformMatrix3dvEXT not implemented");
					Delegates.pglProgramUniformMatrix3dvEXT(program, location, value.Length / 9, transpose, p_value);
					LogCommand("glProgramUniformMatrix3dvEXT", null, program, location, value.Length / 9, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix4dvEXT: Binding for glProgramUniformMatrix4dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix4EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 16) == 0, "empty or not multiple of 16");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix4dvEXT != null, "pglProgramUniformMatrix4dvEXT not implemented");
					Delegates.pglProgramUniformMatrix4dvEXT(program, location, value.Length / 16, transpose, p_value);
					LogCommand("glProgramUniformMatrix4dvEXT", null, program, location, value.Length / 16, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix2x3dvEXT: Binding for glProgramUniformMatrix2x3dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix2x3EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 6) == 0, "empty or not multiple of 6");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix2x3dvEXT != null, "pglProgramUniformMatrix2x3dvEXT not implemented");
					Delegates.pglProgramUniformMatrix2x3dvEXT(program, location, value.Length / 6, transpose, p_value);
					LogCommand("glProgramUniformMatrix2x3dvEXT", null, program, location, value.Length / 6, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix2x4dvEXT: Binding for glProgramUniformMatrix2x4dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix2x4EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 8) == 0, "empty or not multiple of 8");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix2x4dvEXT != null, "pglProgramUniformMatrix2x4dvEXT not implemented");
					Delegates.pglProgramUniformMatrix2x4dvEXT(program, location, value.Length / 8, transpose, p_value);
					LogCommand("glProgramUniformMatrix2x4dvEXT", null, program, location, value.Length / 8, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix3x2dvEXT: Binding for glProgramUniformMatrix3x2dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix3x2EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 6) == 0, "empty or not multiple of 6");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix3x2dvEXT != null, "pglProgramUniformMatrix3x2dvEXT not implemented");
					Delegates.pglProgramUniformMatrix3x2dvEXT(program, location, value.Length / 6, transpose, p_value);
					LogCommand("glProgramUniformMatrix3x2dvEXT", null, program, location, value.Length / 6, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix3x4dvEXT: Binding for glProgramUniformMatrix3x4dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix3x4EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 12) == 0, "empty or not multiple of 12");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix3x4dvEXT != null, "pglProgramUniformMatrix3x4dvEXT not implemented");
					Delegates.pglProgramUniformMatrix3x4dvEXT(program, location, value.Length / 12, transpose, p_value);
					LogCommand("glProgramUniformMatrix3x4dvEXT", null, program, location, value.Length / 12, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix4x2dvEXT: Binding for glProgramUniformMatrix4x2dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix4x2EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 8) == 0, "empty or not multiple of 8");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix4x2dvEXT != null, "pglProgramUniformMatrix4x2dvEXT not implemented");
					Delegates.pglProgramUniformMatrix4x2dvEXT(program, location, value.Length / 8, transpose, p_value);
					LogCommand("glProgramUniformMatrix4x2dvEXT", null, program, location, value.Length / 8, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glProgramUniformMatrix4x3dvEXT: Binding for glProgramUniformMatrix4x3dvEXT.
		/// </summary>
		/// <param name="program">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="location">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="transpose">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="value">
		/// A <see cref="T:double[]"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void ProgramUniformMatrix4x3EXT(uint program, int location, bool transpose, double[] value)
		{
			Debug.Assert(value.Length > 0 && (value.Length % 12) == 0, "empty or not multiple of 12");
			unsafe {
				fixed (double* p_value = value)
				{
					Debug.Assert(Delegates.pglProgramUniformMatrix4x3dvEXT != null, "pglProgramUniformMatrix4x3dvEXT not implemented");
					Delegates.pglProgramUniformMatrix4x3dvEXT(program, location, value.Length / 12, transpose, p_value);
					LogCommand("glProgramUniformMatrix4x3dvEXT", null, program, location, value.Length / 12, transpose, value					);
				}
			}
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureBufferRangeEXT: Binding for glTextureBufferRangeEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureBufferRangeEXT(uint texture, TextureTarget target, InternalFormat internalformat, uint buffer, IntPtr offset, uint size)
		{
			Debug.Assert(Delegates.pglTextureBufferRangeEXT != null, "pglTextureBufferRangeEXT not implemented");
			Delegates.pglTextureBufferRangeEXT(texture, (int)target, (int)internalformat, buffer, offset, size);
			LogCommand("glTextureBufferRangeEXT", null, texture, target, internalformat, buffer, offset, size			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureStorage1DEXT: Binding for glTextureStorage1DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="levels">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
		public static void TextureStorage1DEXT(uint texture, int target, int levels, InternalFormat internalformat, int width)
		{
			Debug.Assert(Delegates.pglTextureStorage1DEXT != null, "pglTextureStorage1DEXT not implemented");
			Delegates.pglTextureStorage1DEXT(texture, target, levels, (int)internalformat, width);
			LogCommand("glTextureStorage1DEXT", null, texture, target, levels, internalformat, width			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureStorage2DEXT: Binding for glTextureStorage2DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="levels">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
		public static void TextureStorage2DEXT(uint texture, int target, int levels, InternalFormat internalformat, int width, int height)
		{
			Debug.Assert(Delegates.pglTextureStorage2DEXT != null, "pglTextureStorage2DEXT not implemented");
			Delegates.pglTextureStorage2DEXT(texture, target, levels, (int)internalformat, width, height);
			LogCommand("glTextureStorage2DEXT", null, texture, target, levels, internalformat, width, height			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureStorage3DEXT: Binding for glTextureStorage3DEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="levels">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
		public static void TextureStorage3DEXT(uint texture, int target, int levels, InternalFormat internalformat, int width, int height, int depth)
		{
			Debug.Assert(Delegates.pglTextureStorage3DEXT != null, "pglTextureStorage3DEXT not implemented");
			Delegates.pglTextureStorage3DEXT(texture, target, levels, (int)internalformat, width, height, depth);
			LogCommand("glTextureStorage3DEXT", null, texture, target, levels, internalformat, width, height, depth			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureStorage2DMultisampleEXT: Binding for glTextureStorage2DMultisampleEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:TextureTarget"/>.
		/// </param>
		/// <param name="samples">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="fixedsamplelocations">
		/// A <see cref="T:bool"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureStorage2DMultisampleEXT(uint texture, TextureTarget target, int samples, InternalFormat internalformat, int width, int height, bool fixedsamplelocations)
		{
			Debug.Assert(Delegates.pglTextureStorage2DMultisampleEXT != null, "pglTextureStorage2DMultisampleEXT not implemented");
			Delegates.pglTextureStorage2DMultisampleEXT(texture, (int)target, samples, (int)internalformat, width, height, fixedsamplelocations);
			LogCommand("glTextureStorage2DMultisampleEXT", null, texture, target, samples, internalformat, width, height, fixedsamplelocations			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTextureStorage3DMultisampleEXT: Binding for glTextureStorage3DMultisampleEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="target">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="samples">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:InternalFormat"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="fixedsamplelocations">
		/// A <see cref="T:bool"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TextureStorage3DMultisampleEXT(uint texture, int target, int samples, InternalFormat internalformat, int width, int height, int depth, bool fixedsamplelocations)
		{
			Debug.Assert(Delegates.pglTextureStorage3DMultisampleEXT != null, "pglTextureStorage3DMultisampleEXT not implemented");
			Delegates.pglTextureStorage3DMultisampleEXT(texture, target, samples, (int)internalformat, width, height, depth, fixedsamplelocations);
			LogCommand("glTextureStorage3DMultisampleEXT", null, texture, target, samples, internalformat, width, height, depth, fixedsamplelocations			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayBindVertexBufferEXT: Binding for glVertexArrayBindVertexBufferEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="bindingindex">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayBindVertexBufferEXT(uint vaobj, uint bindingindex, uint buffer, IntPtr offset, int stride)
		{
			Debug.Assert(Delegates.pglVertexArrayBindVertexBufferEXT != null, "pglVertexArrayBindVertexBufferEXT not implemented");
			Delegates.pglVertexArrayBindVertexBufferEXT(vaobj, bindingindex, buffer, offset, stride);
			LogCommand("glVertexArrayBindVertexBufferEXT", null, vaobj, bindingindex, buffer, offset, stride			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexAttribFormatEXT: Binding for glVertexArrayVertexAttribFormatEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attribindex">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="normalized">
		/// A <see cref="T:bool"/>.
		/// </param>
		/// <param name="relativeoffset">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexAttribFormatEXT(uint vaobj, uint attribindex, int size, int type, bool normalized, uint relativeoffset)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexAttribFormatEXT != null, "pglVertexArrayVertexAttribFormatEXT not implemented");
			Delegates.pglVertexArrayVertexAttribFormatEXT(vaobj, attribindex, size, type, normalized, relativeoffset);
			LogCommand("glVertexArrayVertexAttribFormatEXT", null, vaobj, attribindex, size, type, normalized, relativeoffset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexAttribIFormatEXT: Binding for glVertexArrayVertexAttribIFormatEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attribindex">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="relativeoffset">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexAttribIFormatEXT(uint vaobj, uint attribindex, int size, int type, uint relativeoffset)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexAttribIFormatEXT != null, "pglVertexArrayVertexAttribIFormatEXT not implemented");
			Delegates.pglVertexArrayVertexAttribIFormatEXT(vaobj, attribindex, size, type, relativeoffset);
			LogCommand("glVertexArrayVertexAttribIFormatEXT", null, vaobj, attribindex, size, type, relativeoffset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexAttribLFormatEXT: Binding for glVertexArrayVertexAttribLFormatEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attribindex">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="relativeoffset">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexAttribLFormatEXT(uint vaobj, uint attribindex, int size, int type, uint relativeoffset)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexAttribLFormatEXT != null, "pglVertexArrayVertexAttribLFormatEXT not implemented");
			Delegates.pglVertexArrayVertexAttribLFormatEXT(vaobj, attribindex, size, type, relativeoffset);
			LogCommand("glVertexArrayVertexAttribLFormatEXT", null, vaobj, attribindex, size, type, relativeoffset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexAttribBindingEXT: Binding for glVertexArrayVertexAttribBindingEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="attribindex">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="bindingindex">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexAttribBindingEXT(uint vaobj, uint attribindex, uint bindingindex)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexAttribBindingEXT != null, "pglVertexArrayVertexAttribBindingEXT not implemented");
			Delegates.pglVertexArrayVertexAttribBindingEXT(vaobj, attribindex, bindingindex);
			LogCommand("glVertexArrayVertexAttribBindingEXT", null, vaobj, attribindex, bindingindex			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexBindingDivisorEXT: Binding for glVertexArrayVertexBindingDivisorEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="bindingindex">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="divisor">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexBindingDivisorEXT(uint vaobj, uint bindingindex, uint divisor)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexBindingDivisorEXT != null, "pglVertexArrayVertexBindingDivisorEXT not implemented");
			Delegates.pglVertexArrayVertexBindingDivisorEXT(vaobj, bindingindex, divisor);
			LogCommand("glVertexArrayVertexBindingDivisorEXT", null, vaobj, bindingindex, divisor			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexAttribLOffsetEXT: Binding for glVertexArrayVertexAttribLOffsetEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:IntPtr"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexAttribLOffsetEXT(uint vaobj, uint buffer, uint index, int size, int type, int stride, IntPtr offset)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexAttribLOffsetEXT != null, "pglVertexArrayVertexAttribLOffsetEXT not implemented");
			Delegates.pglVertexArrayVertexAttribLOffsetEXT(vaobj, buffer, index, size, type, stride, offset);
			LogCommand("glVertexArrayVertexAttribLOffsetEXT", null, vaobj, buffer, index, size, type, stride, offset			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glTexturePageCommitmentEXT: Binding for glTexturePageCommitmentEXT.
		/// </summary>
		/// <param name="texture">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:int"/>.
		/// </param>
		/// <param name="commit">
		/// A <see cref="T:bool"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void TexturePageCommitmentEXT(uint texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, bool commit)
		{
			Debug.Assert(Delegates.pglTexturePageCommitmentEXT != null, "pglTexturePageCommitmentEXT not implemented");
			Delegates.pglTexturePageCommitmentEXT(texture, level, xoffset, yoffset, zoffset, width, height, depth, commit);
			LogCommand("glTexturePageCommitmentEXT", null, texture, level, xoffset, yoffset, zoffset, width, height, depth, commit			);
			DebugCheckErrors(null);
		}

		/// <summary>
		/// [GL] glVertexArrayVertexAttribDivisorEXT: Binding for glVertexArrayVertexAttribDivisorEXT.
		/// </summary>
		/// <param name="vaobj">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="index">
		/// A <see cref="T:uint"/>.
		/// </param>
		/// <param name="divisor">
		/// A <see cref="T:uint"/>.
		/// </param>
		[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
		public static void VertexArrayVertexAttribDivisorEXT(uint vaobj, uint index, uint divisor)
		{
			Debug.Assert(Delegates.pglVertexArrayVertexAttribDivisorEXT != null, "pglVertexArrayVertexAttribDivisorEXT not implemented");
			Delegates.pglVertexArrayVertexAttribDivisorEXT(vaobj, index, divisor);
			LogCommand("glVertexArrayVertexAttribDivisorEXT", null, vaobj, index, divisor			);
			DebugCheckErrors(null);
		}

		internal static unsafe partial class Delegates
		{
			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixLoadfEXT(int mode, float* m);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixLoadfEXT pglMatrixLoadfEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixLoaddEXT(int mode, double* m);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixLoaddEXT pglMatrixLoaddEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixMultfEXT(int mode, float* m);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixMultfEXT pglMatrixMultfEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixMultdEXT(int mode, double* m);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixMultdEXT pglMatrixMultdEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixLoadIdentityEXT(int mode);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixLoadIdentityEXT pglMatrixLoadIdentityEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixRotatefEXT(int mode, float angle, float x, float y, float z);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixRotatefEXT pglMatrixRotatefEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixRotatedEXT(int mode, double angle, double x, double y, double z);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixRotatedEXT pglMatrixRotatedEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixScalefEXT(int mode, float x, float y, float z);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixScalefEXT pglMatrixScalefEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixScaledEXT(int mode, double x, double y, double z);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixScaledEXT pglMatrixScaledEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixTranslatefEXT(int mode, float x, float y, float z);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixTranslatefEXT pglMatrixTranslatefEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixTranslatedEXT(int mode, double x, double y, double z);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixTranslatedEXT pglMatrixTranslatedEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixFrustumEXT(int mode, double left, double right, double bottom, double top, double zNear, double zFar);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixFrustumEXT pglMatrixFrustumEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixOrthoEXT(int mode, double left, double right, double bottom, double top, double zNear, double zFar);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixOrthoEXT pglMatrixOrthoEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixPopEXT(int mode);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixPopEXT pglMatrixPopEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixPushEXT(int mode);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixPushEXT pglMatrixPushEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glClientAttribDefaultEXT(uint mask);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glClientAttribDefaultEXT pglClientAttribDefaultEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glPushClientAttribDefaultEXT(uint mask);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glPushClientAttribDefaultEXT pglPushClientAttribDefaultEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureParameterfEXT(uint texture, int target, int pname, float param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureParameterfEXT pglTextureParameterfEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureParameterfvEXT(uint texture, int target, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureParameterfvEXT pglTextureParameterfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureParameteriEXT(uint texture, int target, int pname, int param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureParameteriEXT pglTextureParameteriEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureParameterivEXT(uint texture, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureParameterivEXT pglTextureParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureImage1DEXT(uint texture, int target, int level, int internalformat, int width, int border, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureImage1DEXT pglTextureImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureImage2DEXT(uint texture, int target, int level, int internalformat, int width, int height, int border, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureImage2DEXT pglTextureImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureSubImage1DEXT(uint texture, int target, int level, int xoffset, int width, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureSubImage1DEXT pglTextureSubImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureSubImage2DEXT(uint texture, int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureSubImage2DEXT pglTextureSubImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyTextureImage1DEXT(uint texture, int target, int level, int internalformat, int x, int y, int width, int border);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyTextureImage1DEXT pglCopyTextureImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyTextureImage2DEXT(uint texture, int target, int level, int internalformat, int x, int y, int width, int height, int border);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyTextureImage2DEXT pglCopyTextureImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyTextureSubImage1DEXT(uint texture, int target, int level, int xoffset, int x, int y, int width);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyTextureSubImage1DEXT pglCopyTextureSubImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyTextureSubImage2DEXT(uint texture, int target, int level, int xoffset, int yoffset, int x, int y, int width, int height);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyTextureSubImage2DEXT pglCopyTextureSubImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetTextureImageEXT(uint texture, int target, int level, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetTextureImageEXT pglGetTextureImageEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetTextureParameterfvEXT(uint texture, int target, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetTextureParameterfvEXT pglGetTextureParameterfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetTextureParameterivEXT(uint texture, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetTextureParameterivEXT pglGetTextureParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetTextureLevelParameterfvEXT(uint texture, int target, int level, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetTextureLevelParameterfvEXT pglGetTextureLevelParameterfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetTextureLevelParameterivEXT(uint texture, int target, int level, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetTextureLevelParameterivEXT pglGetTextureLevelParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureImage3DEXT(uint texture, int target, int level, int internalformat, int width, int height, int depth, int border, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureImage3DEXT pglTextureImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureSubImage3DEXT(uint texture, int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureSubImage3DEXT pglTextureSubImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyTextureSubImage3DEXT(uint texture, int target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyTextureSubImage3DEXT pglCopyTextureSubImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glBindMultiTextureEXT(int texunit, int target, uint texture);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glBindMultiTextureEXT pglBindMultiTextureEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexCoordPointerEXT(int texunit, int size, int type, int stride, IntPtr pointer);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexCoordPointerEXT pglMultiTexCoordPointerEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexEnvfEXT(int texunit, int target, int pname, float param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexEnvfEXT pglMultiTexEnvfEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexEnvfvEXT(int texunit, int target, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexEnvfvEXT pglMultiTexEnvfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexEnviEXT(int texunit, int target, int pname, int param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexEnviEXT pglMultiTexEnviEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexEnvivEXT(int texunit, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexEnvivEXT pglMultiTexEnvivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexGendEXT(int texunit, int coord, int pname, double param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexGendEXT pglMultiTexGendEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexGendvEXT(int texunit, int coord, int pname, double* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexGendvEXT pglMultiTexGendvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexGenfEXT(int texunit, int coord, int pname, float param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexGenfEXT pglMultiTexGenfEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexGenfvEXT(int texunit, int coord, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexGenfvEXT pglMultiTexGenfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexGeniEXT(int texunit, int coord, int pname, int param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexGeniEXT pglMultiTexGeniEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexGenivEXT(int texunit, int coord, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexGenivEXT pglMultiTexGenivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexEnvfvEXT(int texunit, int target, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexEnvfvEXT pglGetMultiTexEnvfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexEnvivEXT(int texunit, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexEnvivEXT pglGetMultiTexEnvivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexGendvEXT(int texunit, int coord, int pname, double* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexGendvEXT pglGetMultiTexGendvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexGenfvEXT(int texunit, int coord, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexGenfvEXT pglGetMultiTexGenfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexGenivEXT(int texunit, int coord, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexGenivEXT pglGetMultiTexGenivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexParameteriEXT(int texunit, int target, int pname, int param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexParameteriEXT pglMultiTexParameteriEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexParameterivEXT(int texunit, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexParameterivEXT pglMultiTexParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexParameterfEXT(int texunit, int target, int pname, float param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexParameterfEXT pglMultiTexParameterfEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexParameterfvEXT(int texunit, int target, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexParameterfvEXT pglMultiTexParameterfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexImage1DEXT(int texunit, int target, int level, int internalformat, int width, int border, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexImage1DEXT pglMultiTexImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexImage2DEXT(int texunit, int target, int level, int internalformat, int width, int height, int border, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexImage2DEXT pglMultiTexImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexSubImage1DEXT(int texunit, int target, int level, int xoffset, int width, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexSubImage1DEXT pglMultiTexSubImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexSubImage2DEXT(int texunit, int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexSubImage2DEXT pglMultiTexSubImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyMultiTexImage1DEXT(int texunit, int target, int level, int internalformat, int x, int y, int width, int border);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyMultiTexImage1DEXT pglCopyMultiTexImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyMultiTexImage2DEXT(int texunit, int target, int level, int internalformat, int x, int y, int width, int height, int border);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyMultiTexImage2DEXT pglCopyMultiTexImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyMultiTexSubImage1DEXT(int texunit, int target, int level, int xoffset, int x, int y, int width);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyMultiTexSubImage1DEXT pglCopyMultiTexSubImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyMultiTexSubImage2DEXT(int texunit, int target, int level, int xoffset, int yoffset, int x, int y, int width, int height);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyMultiTexSubImage2DEXT pglCopyMultiTexSubImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexImageEXT(int texunit, int target, int level, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexImageEXT pglGetMultiTexImageEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexParameterfvEXT(int texunit, int target, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexParameterfvEXT pglGetMultiTexParameterfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexParameterivEXT(int texunit, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexParameterivEXT pglGetMultiTexParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexLevelParameterfvEXT(int texunit, int target, int level, int pname, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexLevelParameterfvEXT pglGetMultiTexLevelParameterfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexLevelParameterivEXT(int texunit, int target, int level, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexLevelParameterivEXT pglGetMultiTexLevelParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexImage3DEXT(int texunit, int target, int level, int internalformat, int width, int height, int depth, int border, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexImage3DEXT pglMultiTexImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexSubImage3DEXT(int texunit, int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, IntPtr pixels);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexSubImage3DEXT pglMultiTexSubImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCopyMultiTexSubImage3DEXT(int texunit, int target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCopyMultiTexSubImage3DEXT pglCopyMultiTexSubImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glEnableClientStateIndexedEXT(int array, uint index);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glEnableClientStateIndexedEXT pglEnableClientStateIndexedEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glDisableClientStateIndexedEXT(int array, uint index);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glDisableClientStateIndexedEXT pglDisableClientStateIndexedEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetPointerIndexedvEXT(int target, uint index, IntPtr* data);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetPointerIndexedvEXT pglGetPointerIndexedvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedTextureImage3DEXT(uint texture, int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedTextureImage3DEXT pglCompressedTextureImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedTextureImage2DEXT(uint texture, int target, int level, int internalformat, int width, int height, int border, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedTextureImage2DEXT pglCompressedTextureImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedTextureImage1DEXT(uint texture, int target, int level, int internalformat, int width, int border, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedTextureImage1DEXT pglCompressedTextureImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedTextureSubImage3DEXT(uint texture, int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedTextureSubImage3DEXT pglCompressedTextureSubImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedTextureSubImage2DEXT(uint texture, int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedTextureSubImage2DEXT pglCompressedTextureSubImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedTextureSubImage1DEXT(uint texture, int target, int level, int xoffset, int width, int format, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedTextureSubImage1DEXT pglCompressedTextureSubImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetCompressedTextureImageEXT(uint texture, int target, int lod, IntPtr img);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetCompressedTextureImageEXT pglGetCompressedTextureImageEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedMultiTexImage3DEXT(int texunit, int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedMultiTexImage3DEXT pglCompressedMultiTexImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedMultiTexImage2DEXT(int texunit, int target, int level, int internalformat, int width, int height, int border, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedMultiTexImage2DEXT pglCompressedMultiTexImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedMultiTexImage1DEXT(int texunit, int target, int level, int internalformat, int width, int border, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedMultiTexImage1DEXT pglCompressedMultiTexImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedMultiTexSubImage3DEXT(int texunit, int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedMultiTexSubImage3DEXT pglCompressedMultiTexSubImage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedMultiTexSubImage2DEXT(int texunit, int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedMultiTexSubImage2DEXT pglCompressedMultiTexSubImage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glCompressedMultiTexSubImage1DEXT(int texunit, int target, int level, int xoffset, int width, int format, int imageSize, IntPtr bits);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCompressedMultiTexSubImage1DEXT pglCompressedMultiTexSubImage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetCompressedMultiTexImageEXT(int texunit, int target, int lod, IntPtr img);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetCompressedMultiTexImageEXT pglGetCompressedMultiTexImageEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixLoadTransposefEXT(int mode, float* m);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixLoadTransposefEXT pglMatrixLoadTransposefEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixLoadTransposedEXT(int mode, double* m);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixLoadTransposedEXT pglMatrixLoadTransposedEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixMultTransposefEXT(int mode, float* m);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixMultTransposefEXT pglMatrixMultTransposefEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMatrixMultTransposedEXT(int mode, double* m);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_NV_path_rendering", Api = "gl|glcore|gles2")]
			[ThreadStatic]
			internal static glMatrixMultTransposedEXT pglMatrixMultTransposedEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedBufferDataEXT(uint buffer, uint size, IntPtr data, int usage);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedBufferDataEXT pglNamedBufferDataEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate IntPtr glMapNamedBufferEXT(uint buffer, int access);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMapNamedBufferEXT pglMapNamedBufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			[return: MarshalAs(UnmanagedType.I1)]
			internal delegate bool glUnmapNamedBufferEXT(uint buffer);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glUnmapNamedBufferEXT pglUnmapNamedBufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedBufferParameterivEXT(uint buffer, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedBufferParameterivEXT pglGetNamedBufferParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedBufferPointervEXT(uint buffer, int pname, IntPtr* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedBufferPointervEXT pglGetNamedBufferPointervEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedBufferSubDataEXT(uint buffer, IntPtr offset, uint size, IntPtr data);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedBufferSubDataEXT pglGetNamedBufferSubDataEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureBufferEXT(uint texture, int target, int internalformat, uint buffer);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureBufferEXT pglTextureBufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexBufferEXT(int texunit, int target, int internalformat, uint buffer);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexBufferEXT pglMultiTexBufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureParameterIivEXT(uint texture, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureParameterIivEXT pglTextureParameterIivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureParameterIuivEXT(uint texture, int target, int pname, uint* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureParameterIuivEXT pglTextureParameterIuivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetTextureParameterIivEXT(uint texture, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetTextureParameterIivEXT pglGetTextureParameterIivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetTextureParameterIuivEXT(uint texture, int target, int pname, uint* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetTextureParameterIuivEXT pglGetTextureParameterIuivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexParameterIivEXT(int texunit, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexParameterIivEXT pglMultiTexParameterIivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexParameterIuivEXT(int texunit, int target, int pname, uint* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexParameterIuivEXT pglMultiTexParameterIuivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexParameterIivEXT(int texunit, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexParameterIivEXT pglGetMultiTexParameterIivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetMultiTexParameterIuivEXT(int texunit, int target, int pname, uint* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetMultiTexParameterIuivEXT pglGetMultiTexParameterIuivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameters4fvEXT(uint program, int target, uint index, int count, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameters4fvEXT pglNamedProgramLocalParameters4fvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameterI4iEXT(uint program, int target, uint index, int x, int y, int z, int w);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameterI4iEXT pglNamedProgramLocalParameterI4iEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameterI4ivEXT(uint program, int target, uint index, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameterI4ivEXT pglNamedProgramLocalParameterI4ivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParametersI4ivEXT(uint program, int target, uint index, int count, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParametersI4ivEXT pglNamedProgramLocalParametersI4ivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameterI4uiEXT(uint program, int target, uint index, uint x, uint y, uint z, uint w);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameterI4uiEXT pglNamedProgramLocalParameterI4uiEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameterI4uivEXT(uint program, int target, uint index, uint* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameterI4uivEXT pglNamedProgramLocalParameterI4uivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParametersI4uivEXT(uint program, int target, uint index, int count, uint* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParametersI4uivEXT pglNamedProgramLocalParametersI4uivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedProgramLocalParameterIivEXT(uint program, int target, uint index, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedProgramLocalParameterIivEXT pglGetNamedProgramLocalParameterIivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedProgramLocalParameterIuivEXT(uint program, int target, uint index, uint* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedProgramLocalParameterIuivEXT pglGetNamedProgramLocalParameterIuivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glEnableClientStateiEXT(int array, uint index);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glEnableClientStateiEXT pglEnableClientStateiEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glDisableClientStateiEXT(int array, uint index);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glDisableClientStateiEXT pglDisableClientStateiEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetPointeri_vEXT(int pname, uint index, IntPtr* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetPointeri_vEXT pglGetPointeri_vEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramStringEXT(uint program, int target, int format, int len, IntPtr @string);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramStringEXT pglNamedProgramStringEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameter4dEXT(uint program, int target, uint index, double x, double y, double z, double w);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameter4dEXT pglNamedProgramLocalParameter4dEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameter4dvEXT(uint program, int target, uint index, double* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameter4dvEXT pglNamedProgramLocalParameter4dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameter4fEXT(uint program, int target, uint index, float x, float y, float z, float w);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameter4fEXT pglNamedProgramLocalParameter4fEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedProgramLocalParameter4fvEXT(uint program, int target, uint index, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedProgramLocalParameter4fvEXT pglNamedProgramLocalParameter4fvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedProgramLocalParameterdvEXT(uint program, int target, uint index, double* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedProgramLocalParameterdvEXT pglGetNamedProgramLocalParameterdvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedProgramLocalParameterfvEXT(uint program, int target, uint index, float* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedProgramLocalParameterfvEXT pglGetNamedProgramLocalParameterfvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedProgramivEXT(uint program, int target, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedProgramivEXT pglGetNamedProgramivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedProgramStringEXT(uint program, int target, int pname, IntPtr @string);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedProgramStringEXT pglGetNamedProgramStringEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedRenderbufferStorageEXT(uint renderbuffer, int internalformat, int width, int height);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedRenderbufferStorageEXT pglNamedRenderbufferStorageEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedRenderbufferParameterivEXT(uint renderbuffer, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedRenderbufferParameterivEXT pglGetNamedRenderbufferParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedRenderbufferStorageMultisampleEXT(uint renderbuffer, int samples, int internalformat, int width, int height);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedRenderbufferStorageMultisampleEXT pglNamedRenderbufferStorageMultisampleEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedRenderbufferStorageMultisampleCoverageEXT(uint renderbuffer, int coverageSamples, int colorSamples, int internalformat, int width, int height);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedRenderbufferStorageMultisampleCoverageEXT pglNamedRenderbufferStorageMultisampleCoverageEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate int glCheckNamedFramebufferStatusEXT(uint framebuffer, int target);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glCheckNamedFramebufferStatusEXT pglCheckNamedFramebufferStatusEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedFramebufferTexture1DEXT(uint framebuffer, int attachment, int textarget, uint texture, int level);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedFramebufferTexture1DEXT pglNamedFramebufferTexture1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedFramebufferTexture2DEXT(uint framebuffer, int attachment, int textarget, uint texture, int level);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedFramebufferTexture2DEXT pglNamedFramebufferTexture2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedFramebufferTexture3DEXT(uint framebuffer, int attachment, int textarget, uint texture, int level, int zoffset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedFramebufferTexture3DEXT pglNamedFramebufferTexture3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedFramebufferRenderbufferEXT(uint framebuffer, int attachment, int renderbuffertarget, uint renderbuffer);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedFramebufferRenderbufferEXT pglNamedFramebufferRenderbufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedFramebufferAttachmentParameterivEXT(uint framebuffer, int attachment, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedFramebufferAttachmentParameterivEXT pglGetNamedFramebufferAttachmentParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGenerateTextureMipmapEXT(uint texture, int target);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGenerateTextureMipmapEXT pglGenerateTextureMipmapEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGenerateMultiTexMipmapEXT(int texunit, int target);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGenerateMultiTexMipmapEXT pglGenerateMultiTexMipmapEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glFramebufferDrawBufferEXT(uint framebuffer, int mode);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glFramebufferDrawBufferEXT pglFramebufferDrawBufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glFramebufferDrawBuffersEXT(uint framebuffer, int n, int* bufs);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glFramebufferDrawBuffersEXT pglFramebufferDrawBuffersEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glFramebufferReadBufferEXT(uint framebuffer, int mode);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glFramebufferReadBufferEXT pglFramebufferReadBufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetFramebufferParameterivEXT(uint framebuffer, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetFramebufferParameterivEXT pglGetFramebufferParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedCopyBufferSubDataEXT(uint readBuffer, uint writeBuffer, IntPtr readOffset, IntPtr writeOffset, uint size);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedCopyBufferSubDataEXT pglNamedCopyBufferSubDataEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedFramebufferTextureEXT(uint framebuffer, int attachment, uint texture, int level);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedFramebufferTextureEXT pglNamedFramebufferTextureEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedFramebufferTextureLayerEXT(uint framebuffer, int attachment, uint texture, int level, int layer);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedFramebufferTextureLayerEXT pglNamedFramebufferTextureLayerEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedFramebufferTextureFaceEXT(uint framebuffer, int attachment, uint texture, int level, int face);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedFramebufferTextureFaceEXT pglNamedFramebufferTextureFaceEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureRenderbufferEXT(uint texture, int target, uint renderbuffer);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureRenderbufferEXT pglTextureRenderbufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glMultiTexRenderbufferEXT(int texunit, int target, uint renderbuffer);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMultiTexRenderbufferEXT pglMultiTexRenderbufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexOffsetEXT(uint vaobj, uint buffer, int size, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexOffsetEXT pglVertexArrayVertexOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayColorOffsetEXT(uint vaobj, uint buffer, int size, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayColorOffsetEXT pglVertexArrayColorOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayEdgeFlagOffsetEXT(uint vaobj, uint buffer, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayEdgeFlagOffsetEXT pglVertexArrayEdgeFlagOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayIndexOffsetEXT(uint vaobj, uint buffer, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayIndexOffsetEXT pglVertexArrayIndexOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayNormalOffsetEXT(uint vaobj, uint buffer, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayNormalOffsetEXT pglVertexArrayNormalOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayTexCoordOffsetEXT(uint vaobj, uint buffer, int size, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayTexCoordOffsetEXT pglVertexArrayTexCoordOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayMultiTexCoordOffsetEXT(uint vaobj, uint buffer, int texunit, int size, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayMultiTexCoordOffsetEXT pglVertexArrayMultiTexCoordOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayFogCoordOffsetEXT(uint vaobj, uint buffer, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayFogCoordOffsetEXT pglVertexArrayFogCoordOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArraySecondaryColorOffsetEXT(uint vaobj, uint buffer, int size, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArraySecondaryColorOffsetEXT pglVertexArraySecondaryColorOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexAttribOffsetEXT(uint vaobj, uint buffer, uint index, int size, int type, [MarshalAs(UnmanagedType.I1)] bool normalized, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexAttribOffsetEXT pglVertexArrayVertexAttribOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexAttribIOffsetEXT(uint vaobj, uint buffer, uint index, int size, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexAttribIOffsetEXT pglVertexArrayVertexAttribIOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glEnableVertexArrayEXT(uint vaobj, int array);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glEnableVertexArrayEXT pglEnableVertexArrayEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glDisableVertexArrayEXT(uint vaobj, int array);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glDisableVertexArrayEXT pglDisableVertexArrayEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glEnableVertexArrayAttribEXT(uint vaobj, uint index);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glEnableVertexArrayAttribEXT pglEnableVertexArrayAttribEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glDisableVertexArrayAttribEXT(uint vaobj, uint index);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glDisableVertexArrayAttribEXT pglDisableVertexArrayAttribEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetVertexArrayIntegervEXT(uint vaobj, int pname, int* param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetVertexArrayIntegervEXT pglGetVertexArrayIntegervEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetVertexArrayPointervEXT(uint vaobj, int pname, IntPtr* param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetVertexArrayPointervEXT pglGetVertexArrayPointervEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetVertexArrayIntegeri_vEXT(uint vaobj, uint index, int pname, int* param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetVertexArrayIntegeri_vEXT pglGetVertexArrayIntegeri_vEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetVertexArrayPointeri_vEXT(uint vaobj, uint index, int pname, IntPtr* param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetVertexArrayPointeri_vEXT pglGetVertexArrayPointeri_vEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate IntPtr glMapNamedBufferRangeEXT(uint buffer, IntPtr offset, uint length, uint access);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glMapNamedBufferRangeEXT pglMapNamedBufferRangeEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glFlushMappedNamedBufferRangeEXT(uint buffer, IntPtr offset, uint length);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glFlushMappedNamedBufferRangeEXT pglFlushMappedNamedBufferRangeEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glClearNamedBufferDataEXT(uint buffer, int internalformat, int format, int type, IntPtr data);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glClearNamedBufferDataEXT pglClearNamedBufferDataEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glClearNamedBufferSubDataEXT(uint buffer, int internalformat, uint offset, uint size, int format, int type, IntPtr data);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glClearNamedBufferSubDataEXT pglClearNamedBufferSubDataEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glNamedFramebufferParameteriEXT(uint framebuffer, int pname, int param);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glNamedFramebufferParameteriEXT pglNamedFramebufferParameteriEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glGetNamedFramebufferParameterivEXT(uint framebuffer, int pname, int* @params);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glGetNamedFramebufferParameterivEXT pglGetNamedFramebufferParameterivEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniform1dEXT(uint program, int location, double x);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniform1dEXT pglProgramUniform1dEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniform2dEXT(uint program, int location, double x, double y);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniform2dEXT pglProgramUniform2dEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniform3dEXT(uint program, int location, double x, double y, double z);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniform3dEXT pglProgramUniform3dEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniform4dEXT(uint program, int location, double x, double y, double z, double w);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniform4dEXT pglProgramUniform4dEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniform1dvEXT(uint program, int location, int count, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniform1dvEXT pglProgramUniform1dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniform2dvEXT(uint program, int location, int count, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniform2dvEXT pglProgramUniform2dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniform3dvEXT(uint program, int location, int count, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniform3dvEXT pglProgramUniform3dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniform4dvEXT(uint program, int location, int count, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniform4dvEXT pglProgramUniform4dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix2dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix2dvEXT pglProgramUniformMatrix2dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix3dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix3dvEXT pglProgramUniformMatrix3dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix4dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix4dvEXT pglProgramUniformMatrix4dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix2x3dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix2x3dvEXT pglProgramUniformMatrix2x3dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix2x4dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix2x4dvEXT pglProgramUniformMatrix2x4dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix3x2dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix3x2dvEXT pglProgramUniformMatrix3x2dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix3x4dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix3x4dvEXT pglProgramUniformMatrix3x4dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix4x2dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix4x2dvEXT pglProgramUniformMatrix4x2dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glProgramUniformMatrix4x3dvEXT(uint program, int location, int count, [MarshalAs(UnmanagedType.I1)] bool transpose, double* value);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glProgramUniformMatrix4x3dvEXT pglProgramUniformMatrix4x3dvEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureBufferRangeEXT(uint texture, int target, int internalformat, uint buffer, IntPtr offset, uint size);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureBufferRangeEXT pglTextureBufferRangeEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureStorage1DEXT(uint texture, int target, int levels, int internalformat, int width);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
			[ThreadStatic]
			internal static glTextureStorage1DEXT pglTextureStorage1DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureStorage2DEXT(uint texture, int target, int levels, int internalformat, int width, int height);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
			[ThreadStatic]
			internal static glTextureStorage2DEXT pglTextureStorage2DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureStorage3DEXT(uint texture, int target, int levels, int internalformat, int width, int height, int depth);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[RequiredByFeature("GL_EXT_texture_storage", Api = "gles1|gles2")]
			[ThreadStatic]
			internal static glTextureStorage3DEXT pglTextureStorage3DEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureStorage2DMultisampleEXT(uint texture, int target, int samples, int internalformat, int width, int height, [MarshalAs(UnmanagedType.I1)] bool fixedsamplelocations);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureStorage2DMultisampleEXT pglTextureStorage2DMultisampleEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTextureStorage3DMultisampleEXT(uint texture, int target, int samples, int internalformat, int width, int height, int depth, [MarshalAs(UnmanagedType.I1)] bool fixedsamplelocations);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTextureStorage3DMultisampleEXT pglTextureStorage3DMultisampleEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayBindVertexBufferEXT(uint vaobj, uint bindingindex, uint buffer, IntPtr offset, int stride);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayBindVertexBufferEXT pglVertexArrayBindVertexBufferEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexAttribFormatEXT(uint vaobj, uint attribindex, int size, int type, [MarshalAs(UnmanagedType.I1)] bool normalized, uint relativeoffset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexAttribFormatEXT pglVertexArrayVertexAttribFormatEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexAttribIFormatEXT(uint vaobj, uint attribindex, int size, int type, uint relativeoffset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexAttribIFormatEXT pglVertexArrayVertexAttribIFormatEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexAttribLFormatEXT(uint vaobj, uint attribindex, int size, int type, uint relativeoffset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexAttribLFormatEXT pglVertexArrayVertexAttribLFormatEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexAttribBindingEXT(uint vaobj, uint attribindex, uint bindingindex);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexAttribBindingEXT pglVertexArrayVertexAttribBindingEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexBindingDivisorEXT(uint vaobj, uint bindingindex, uint divisor);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexBindingDivisorEXT pglVertexArrayVertexBindingDivisorEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexAttribLOffsetEXT(uint vaobj, uint buffer, uint index, int size, int type, int stride, IntPtr offset);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexAttribLOffsetEXT pglVertexArrayVertexAttribLOffsetEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glTexturePageCommitmentEXT(uint texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, [MarshalAs(UnmanagedType.I1)] bool commit);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glTexturePageCommitmentEXT pglTexturePageCommitmentEXT;

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[SuppressUnmanagedCodeSecurity]
			internal delegate void glVertexArrayVertexAttribDivisorEXT(uint vaobj, uint index, uint divisor);

			[RequiredByFeature("GL_EXT_direct_state_access", Api = "gl|glcore")]
			[ThreadStatic]
			internal static glVertexArrayVertexAttribDivisorEXT pglVertexArrayVertexAttribDivisorEXT;

		}
	}

}
